't düğüm ile kullanıldığında işe birden fazla Metin alt düğüm ile değil XPath (() metin,'string') içerir
Dom4j ... ile Xpath içeren küçük bir sorunum var
Benim XML diyelim
<Home>
<Addr>
<Street>ABC</Street>
<Number>5</Number>
<Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
</Addr>
</Home>
Metin kök Öğesi verilen ABC tüm düğümleri bulmak istiyorum diyelim...
Yazmak için gerekli olacağını xpath olur
//*[contains(text(),'ABC')]
Ancak bu Dom4j verir ne değildir.... bu xpath nasıl çalıştığını dom4j bir sorun ya da benim anlayış. sorgu döndürür beri sadece Sokak Element ve Yorum unsur değil.
DOM Yorum öğesi dört kategori ile kompozit bir eleman
[Text = 'XYZ'][BR][BR][Text = 'ABC']
Sorgu hala eleman bulmak gerekir bu yana elemanı dönüp içerir çalıştırmak gerektiğini sanıyorum ama değil
aşağıdaki sorgu elemanı döndürür ama daha sonra sadece öğe, bu sorun için istenmeyen bir durum ... ana unsurlar olarak geri dönüyor.
//*[contains(text(),'ABC')]
Herhangi bir Element <Street/>
<Comment/>
dönecekti xpath sorgusu biliyor mu ?
CEVAP
<Comment>
etiketi iki metin düğümleri ve çocuklar <br>
iki düğüm içerir.
Xpath ifade edildi
//*[contains(text(),'ABC')]
Bu yıkmak
*
bir düğüm-kümesi döndürür herhangi bir element (tag yani) -- eşleşen bir seçici.[]
düğüm kümesindeki her bir birey düğüm üzerinde faaliyet gösteren bir koşullu. Eğer üzerinde çalıştığı bireysel düğümleri parantez içindeki koşullar uyuyorsa uyuyor.text()
seçicibir düğüm kümesi ile döner bağlam düğüm çocukları olan metin düğümleri tüm maçlar.contains
bir dize üzerinde faaliyet gösteren bir işlevdir. Eğer düğüm bir küme kabul edersek, düğüm kümesi converted into a string by returning the string-value of the node in the node-set that is first in document order. Dolayısıyla,<Comment>
eleman ... yani sadece ilk metin düğümüBLAH BLAH BLAH
eşleştirebilirsiniz. Bu maç olmadığı için sonuçları<Comment>
bir hakkın yok.
Bunu değiştirmek gerekir
//*[text()[contains(.,'ABC')]]
*
bir düğüm-kümesi döndürür herhangi bir element (tag yani) -- eşleşen bir seçici.[]
dış belgedeki her eleman üzerinde çalıştığı düğüm -- set her düğüm burada faaliyet gösteren bir koşullu.text()
seçicibir düğüm kümesi ile döner bağlam düğüm çocukları olan metin düğümleri tüm maçlar.[]
her düğüm üzerinde faaliyet gösteren bir koşullu iç düğüm ... burada her tek tek bir metin düğümü ayarlayın. Her tek tek bir metin düğümü parantez içinde herhangi bir yol için başlangıç noktasıdır, ve ayrıca parantez içinde.
olarak açıkça ifade edilebilir. Eğer üzerinde çalıştığı bireysel düğümleri parantez içindeki koşullar uyuyorsa uyuyor.contains
bir dize üzerinde faaliyet gösteren bir işlevdir. Burada tek bir metin düğümü (.
) geçirilir.<Comment>
etiket ikinci metin düğümü tek tek geçirilir beri'ABC'
dize görmek ve buna uygun mümkün olacak.
UİLabel metin birden fazla satır...
&Lt giriş birden fazla satır;ınput typ...
Nasıl Vim içinde birden fazla satır sa...
düğüm-websocket-server: birden fazla, ...
Nasıl okunur bir metin Python string b...