的xml文件如下:的XPath提取跨度的第一部分與強嵌套的內部
<span>foo
<strong>bar</strong>
</span>
我希望能夠創造返回「富」 ,而不是「酒吧」的XPath。 //span[1]
返回「foo bar」。
如何更改我的查詢?
的xml文件如下:的XPath提取跨度的第一部分與強嵌套的內部
<span>foo
<strong>bar</strong>
</span>
我希望能夠創造返回「富」 ,而不是「酒吧」的XPath。 //span[1]
返回「foo bar」。
如何更改我的查詢?
//span/text()
返回//span
(此處爲「foo」)的直接子節點的所有文本節點。
//span[1]
您試圖恢復與它的所有內容,第一<span/>
元素,因此它實際上應該返回foo<strong>bar</strong>
。如果你只想返回第一個文本節點,上述延長這樣的查詢:
//span/text()[1]
對於輸入像
<span>
foo
<strong>bar</strong>
batz
</span>
這將導致「foobatz」,否則,它仍將限制結果集設置爲「foo」。
試試這個,
xpath string(//span/strong)
那就是如何我xmllint外殼使用它。您可以直接使用功能string
。
這將返回「酒吧」,*不* *「富」。問題是相反的。 – 2013-02-22 12:09:47
@JensErat在這種情況下,這裏給出的XML不是首選格式。所有的數據預計在不同的標籤。 '
上面的XML語法上完全精細和有它的合理例子。想想'
Foo 吧 batz。
'這是一個有效的X(HT)ML片段。 – 2013-02-22 13:50:34
完美 - 謝謝你Jens Erat!我*愛*這個社區.... – SteveWF 2013-02-22 17:26:31