如何在以下文档中获取The quick brown fox.
:
<a>
<b>
Hello
<c/>
World
</b>
The quick brown fox.
</a>
答案 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()开始这样就可以得到节点文本而不是标签。