我正在使用XSL将XML文件转换为HTML文件。是否可以将原始XML文件嵌入HTML输出中?是的,这怎么可能?
更新1:为了让我的需求更容易理解:在我的HTML文件中,我想要一个可以下载原始XML文件的表单。因此,我必须将原始XML文件嵌入到我的HTML文件中(例如作为隐藏的输入字段)
由于
答案 0 :(得分:1)
如果要复制节点,可以只在<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节点放入HTML通常没有意义。如果要将XML文档序列化为纯文本以进行呈现,则可以使用http://lenzconsulting.com/xml-to-string/之类的解决方案,例如:
<data>
<item att="value">
<!-- comment -->
<foo>bar</foo>
</item>
</data>
转换XML输入,如
<!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>
进入HTML
==