XPath提取当前节点但不包括子节点的内容

3
我该如何使用XPath选择当前节点的内容,但不包括子节点? 例如,如果我有以下内容: <text> sometext <citation> somecitation </citation> sometext </text> 那么我只需要sometext而不包括引用。
2个回答

1

text()会返回所有文本子节点,在XSLT 2.0中,你可以简单地使用<xsl:value-of select="text()"/>输出这两个文本子节点。或者编写一个模板。

<xsl:template match="text">
  <xsl:apply-templates select="text()"/>
</xsl:template>

请注意,在您的代码片段中有两个text()子节点,均为sometext。不清楚您是否想要输出两者。

1
如果你只想要text元素中的文本,可以使用以下代码:
//text/text()

使用例如xmllint,这将给出:
> xmllint -xpath "//text/text()" test.xml
 sometext  sometext

//text/text() 这就是我要找的!我需要编写 XSL,使得某些文本和引用以不同的字体呈现,也许你知道怎么做? - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接