<td></td><td>foo</td>
XPath'ta boş bir düğümün metni() için nasıl dönebilirim?
Ben ['', 'foo']
ama libxml en xpath //td/text()
getirileri sadece ['foo']
dönmek istiyorum. Boş etiketi, (eşleştirilmemiş) yerine ''
olarak nasıl bulurum?
<td></td><td>foo</td>
XPath'ta boş bir düğümün metni() için nasıl dönebilirim?
Ben ['', 'foo']
ama libxml en xpath //td/text()
getirileri sadece ['foo']
dönmek istiyorum. Boş etiketi, (eşleştirilmemiş) yerine ''
olarak nasıl bulurum?
Özellikle metin düğümlerini seçtiğiniz sürece, yapamazsınız. Çünkü ilk <td>
'da hiç bir metin düğümü yoktur.
XPath ifadenizi '//td'
olarak değiştirdiğinizde, iki <td>
düğümünü elde edersiniz. Daha fazla işlemede metin değerini kullanın. XPath'ın 2.0 bir de
@Tomalak mükemmel doğru olmakla birlikte, kullanabilir:
//td/string(.)
ve bu dizileri bir dizi üreten - karşılık gelen bir td
elemanının dize değeri içeren her bir.
Yani, sizin durumda sonuç tane arzu edilecektir:
"", "foo"
+1. Bu, benim çözümümün XPath 1.0 için tam olarak ne yaptığı - '
Bütün 'td' düğümleri bulma ve üzerlerinde .text çağıran sarılır. Büyük bir XPath ;-) her şeyi yapmak kadar güzel değil ama işe yarıyor. – joeforker
@joeforker: All-parlak XPath 2.0'a erişiminiz olmadığı sürece, bu tek seçeneğiniz. :-) – Tomalak