XPath提取Span的第一部分,其中Strong嵌套在里面

时间:2013-02-22 11:19:03

标签: xpath

xml文件如下:

<span>foo
  <strong>bar</strong>
</span>

我希望能够创建一个返回“foo”而不是“bar”的XPath。 //span[1]返回“foo bar”。

如何更改查询?

2 个答案:

答案 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