XPath - 如何选择文本

时间:2010-12-07 07:22:53

标签: xml xpath

如何在以下文档中获取The quick brown fox.

<a>
   <b>
      Hello
      <c/>
      World
   </b>
   The quick brown fox.
</a>

3 个答案:

答案 0 :(得分:4)

正如评论中所讨论的,处理混合内容对于了解是否仅保留或剥离仅空白文本节点非常重要。

通用解决方案:

/a/text()[normalize-space()][1]

含义:首先不是仅空白空间a根元素的文本节点子

其他可能性:

/a/text()[last()]

含义: a根元素的最后一个文本节点子元素

答案 1 :(得分:1)

text()选择当前节点的所有子文本节点,因此/a/text()是可行的方法。请记住,您可能需要对结果进行一些字符串操作,因为像这样的XML:

<a>
   <b>
      Hello
      <c/>
      World
   </b>
   The quick <!--comment--> brown fox.
</a>

将返回两个文本节点(“快速”和“棕色狐狸”)。此外,文本值将包含空格(例如</b>之后和“the”之前的换行符。)

答案 2 :(得分:0)

你可以从/ a / text()开始这样就可以得到节点文本而不是标签。