我想用XML构建一个可以包含文本和代码的文件,如下所示:
<root>
<item>Use the <code>location.href</code> propriety to change the URL.</item>
<item>Something else.</item>
</root>
我想创建一个XSLT文件,将该XML转换为HTML:
<html>
<body>
<ul>
<li>Use the <code>location.href</code> propriety to change the URL.</li>
<li>Something else.</li>
</ul>
</body>
</html>
我尝试使用此XSLT代码,但它超出了忽略<code>
标记的HTML。它的内容仍然可见,但标签本身(及其格式)无处可寻。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<ul>
<xsl:for-each select="root/item">
<li><xsl:value-of select="." /></li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我还尝试用<code>
替换XML文件<code>
,但结果是一样的。
请告诉我该怎么做。
答案 0 :(得分:1)
您可以使用与<item>
匹配的模板,然后使用xsl:copy-of
- 复制所有子内容 - 而不是xsl:value-of
- 仅复制文本内容。
node()
选择所有节点(强调元素和文本节点)。
<xsl:template match="/root">
<html>
<body>
<ul>
<xsl:apply-templates />
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="item">
<li><xsl:copy-of select="node()" /></li>
</xsl:template>
输出符合要求。