XSL 嵌入原始 XML 文件



我正在使用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>&lt;data&gt;
    &lt;item att="value"&gt;
        &lt;!-- comment --&gt;
        &lt;foo&gt;bar&lt;/foo&gt;
    &lt;/item&gt;
&lt;/data&gt;</pre></section>
      </section>
   </body>
</html>

相关内容

  • 没有找到相关文章

最新更新