XSLT/XPath:视为<tag>普通字符串,而不是节点



我有一个XML:

<foo>
<bar>some text</bar>
</foo>

我正在使用XSTL从中生成一个HTML,并寻找一个Xpath(或一些XSTL方法,不知道),它给了我foo的全部内容。为了说明我的问题,

<xsl:value-of select="foo"/>

正如预期的那样,仅交付

some text

.但是我能做些什么来得到

<bar>some text</bar>

?因此,将其视为条形标签只是普通字符串。

当然,没有办法将<tag>视为字符串,因为 XSLT 看到的是 XML 解析器的输出,这是一个节点树:当 XSLT 开始运行时,标记早已消失。

但是您当然可以复制整个元素节点,而不仅仅是提取其字符串值。只需使用<xsl:copy-of>代替<xsl:value-of>

您可以使用Copy

.HTML

<foo>
<bar>some text</bar>
</foo>

XSL

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="bar">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

输出

<bar>some text</bar>

最新更新