从节点中选择文本并省略子节点

Dav*_*ave 6 xpath xquery

我需要选择节点中的文本,而不是任何子节点.xml看起来像这样

<a>
  apples  
  <b><c/></b>
  pears
</a>
Run Code Online (Sandbox Code Playgroud)

如果我选择a/text(),我得到的只是" 苹果 ".如何在省略的情况下检索" 苹果梨 "<b><c/></b>

Mar*_*nen 4

那么路径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()仅返回第一个选定节点的(字符串?)值。