我有一个具有以下结构的 xml 文档。我正在编写一个转换,我想从节点 B 输出文本,但忽略元素 C 和文本节点“标题”。本质上,我想提取文本“文本在此处”并将其输出到一个新元素中,所有空格都已标准化。有人可以帮忙吗?以下是我迄今为止尝试过的。
Input Doc
<A>
<B>
<C>title</C>
text goes here
</B>
</A>
Required output doc
<d>text goes here</d>
Solution A:
<xsl:template match="B">
<d>
<xsl:copy-of select="./text()"/>
</d>
</xsl:template>
问题:元素之间的空白被保留,所以我得到这样的东西:
<d>
Text goes here
</d>
我还尝试<xsl:value-of select="./text()"/>
在解决方案 A 的模板中使用 value-of 语句 (),但这根本没有返回任何文本。声明有问题吗?
我应该提到我已经使用以下内容覆盖了默认的文本处理模板:<xsl:template match="text()" />
谢谢