xml文件如下:
<span>foo
<strong>bar</strong>
</span>
我希望能够创建一个返回“foo”而不是“bar”的XPath。 //span[1]
返回“foo bar”。
如何更改查询?
答案 0 :(得分:2)
//span/text()
返回//span
的直接子节点的所有文本节点(此处:“foo”)。
//span[1]
会返回第一个<span/>
元素及其所有内容,因此它实际上应该返回foo<strong>bar</strong>
。如果您只想返回第一个文本节点,请像上面这样扩展上面的查询:
//span/text()[1]
对于像
这样的输入<span>
foo
<strong>bar</strong>
batz
</span>
否则会导致“foobatz”,它仍会将结果集限制为“foo”。
答案 1 :(得分:0)
试试这个,
xpath string(//span/strong)
这就是我在xmllint shell中使用它的方式。您可以直接使用函数string
。