我正在使用XSL将XML文件转换为HTML文件。是否可以在 HTML 输出中嵌入原始 XML 文件?如果是,这怎么可能?
更新1:为了使我的需求更好地理解:在我的HTML文件中,我想要一个可以下载原始XML文件的表单。因此,我必须将原始XML文件嵌入到我的HTML文件中(例如作为隐藏的输入字段(
谢谢
如果你想复制节点,你可以简单地在你想要插入它们的地方做<xsl:copy-of select="/"/>
,但是,将任意XML节点放入HTML通常没有意义。如果要将 XML 文档序列化为纯文本以呈现它,则可以使用 http://lenzconsulting.com/xml-to-string/等解决方案,例如:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="http://lenzconsulting.com/xml-to-string/xml-to-string.xsl"/>
<xsl:output method="html" doctype-public="XSLT-compat" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<html>
<head>
<title>Test</title>
</head>
<body>
<section>
<h1>Test</h1>
<xsl:apply-templates/>
<section>
<h2>Source</h2>
<pre>
<xsl:apply-templates mode="xml-to-string"/>
</pre>
</section>
</section>
</body>
</html>
</xsl:template>
<xsl:template match="data">
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="item">
<li>
<xsl:apply-templates/>
</li>
</xsl:template>
</xsl:transform>
转换 XML 输入,例如
<data>
<item att="value">
<!-- comment -->
<foo>bar</foo>
</item>
</data>
到网页中
<!DOCTYPE html
PUBLIC "XSLT-compat">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
</head>
<body>
<section>
<h1>Test</h1>
<ul>
<li>
bar
</li>
</ul>
<section>
<h2>Source</h2><pre><data>
<item att="value">
<!-- comment -->
<foo>bar</foo>
</item>
</data></pre></section>
</section>
</body>
</html>