我需要选择节点中的文本,而不是任何子节点.xml看起来像这样
<a>
apples
<b><c/></b>
pears
</a>
Run Code Online (Sandbox Code Playgroud)
如果我选择a/text()
,我得到的只是" 苹果 ".如何在省略的情况下检索" 苹果梨 "<b><c/></b>
那么路径a/text()
选择元素的所有文本子节点a
,因此在我看来路径是正确的。仅当您将该路径与 XSLT 1.0 一起使用时,<xsl:value-of select="a/text()"/>
它将输出第一个选定节点的字符串值。在 XPath 2.0 和 XQuery 1.0 中:string-join(a/text()/normalize-space(), ' ')
产生字符串apples pears
,因此也许这对您的问题有帮助。如果没有,则考虑解释在哪种上下文中使用 XPath 或 XQuery,以便a/text()
仅返回第一个选定节点的(字符串?)值。