从不包括子节点的节点获取文本



我想从节点<hello>获取文本,但不包括其子节点。我知道/element/hello/text()应该起作用,但它不起作用。

<element>
  <hello><b>Exclude me</b> but not me <b>I'm excluded :(</b> I'm included</hello>
</element>

我的输出只有:but not me。如果我删除第一个节点,一切都按预期工作,并解析第二个文本节点(包括我)。这里,本机处理器的行为类似。Saxon按预期工作。这可能是一个bug吗?我在LibreOffice 4.4.2.2中使用XML过滤器

我想从节点<hello>中获取文本,但不包括其的孩子。我知道/element/hello/text()应该是工作的,但是它不是。

/element/hello/text()工作选择您想要的节点。

但是,如果您使用xsl:value-of来获取文本,它将只返回来自所选集合的第一个节点的值。要获得所有这些,您必须执行以下操作:

<xsl:for-each select="/element/hello/text()">
    <xsl:value-of select="." />
</xsl:for-each>

以上内容适用于XSLT 1.0。在XSLT 2.0中,

<xsl:value-of select="/element/hello/text()"/>

将返回所有选定节点的文本,以空格分隔(除非您指定不同的分隔符)。

相关内容

  • 没有找到相关文章

最新更新