1

xml文件如下:

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

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

如何更改我的查询?

4

2 回答 2

2
//span/text()

//span返回所有文本节点,它们是(这里:“foo”)的直接子节点。


//span[1]您尝试返回的第一个<span/>元素及其所有内容,因此它实际上应该返回foo<strong>bar</strong>. 如果您只想返回第一个文本节点,请像这样扩展上面的查询:

//span/text()[1]

对于像这样的输入

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

这将导致“foobatz”,否则,它仍会将结果集限制为“foo”。

于 2013-02-22T11:41:57.223 回答
0

试试这个,

xpath string(//span/strong)

这就是我在 xmllint shell 中使用它的方式。您可以直接使用该功能string

于 2013-02-22T11:54:06.530 回答