我有一个XSLT样式表,可用于将XML转换为HTML进行显示。一些XML嵌入了HTML,对此我有一个XSLT规则:
<xsl:template match='html|div|span|h1|h2|table'>
<xsl:copy-of select="."/>
</xsl:template>
我的问题是输出有时在HTML表中包含XML,而上面的规则只是给了我HTML内未经转换的原始XML,因此我的浏览器只是忽略了无法识别的XML标签,而仅显示XML的文本内容。我如何才能使其转换内部XML,但按原样传递所有其他HTML?
答案 0 :(得分:0)
我找到了一个解决方案,其中涉及复制HTML节点,然后使用
我的XML看起来像这样:
<foo>
<h2>Heading</h2>
<table>
<tr>
<td>
<bar>xyz</bar>
</td>
</tr>
</table>
</foo>
我在上面的XSLT规则中复制了我希望在XML内部看到的HTML标记内的所有内容,但是复制了“
解决方案是使用
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
通过这种方式,可以复制未明确涵盖的HTML节点,但是可以通过应用任何适用的模板来处理其内容。