Xslt XSL嵌入原始XML文件

Xslt XSL嵌入原始XML文件,xslt,xslt-1.0,Xslt,Xslt 1.0,我正在使用XSL将XML文件转换为HTML文件。是否可以在HTML输出中嵌入原始XML文件?如果是,怎么可能 更新1:为了更好地理解我的需求:在我的HTML文件中,我需要一个可以下载原始XML文件的表单。因此,我必须将原始XML文件嵌入HTML文件(例如,作为隐藏的输入字段) 谢谢如果您想通过复制节点,您只需在希望插入节点的位置执行,但是,将任意XML节点放入HTML通常没有意义。如果要将XML文档序列化为纯文本以呈现它,则可以使用以下解决方案,例如: <xsl:transform xml

我正在使用XSL将XML文件转换为HTML文件。是否可以在HTML输出中嵌入原始XML文件?如果是,怎么可能

更新1:为了更好地理解我的需求:在我的HTML文件中,我需要一个可以下载原始XML文件的表单。因此,我必须将原始XML文件嵌入HTML文件(例如,作为隐藏的输入字段)


谢谢

如果您想通过复制节点,您只需在希望插入节点的位置执行
,但是,将任意XML节点放入HTML通常没有意义。如果要将XML文档序列化为纯文本以呈现它,则可以使用以下解决方案,例如:

<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输入转换为

    <!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>
    
    
    酒吧
    
    进入HTML

    
    试验
    试验
    
    • 酒吧
    源数据 项目att=“值” !-- 评论-- foobar/foo /项目 /资料
    不清楚“将原始XML文件嵌入HTML输出”是什么意思。请发布一个XML输入和预期HTML输出的(小)示例。我刚刚编辑了我的问题:我希望在HTML文件中有一个表单,在那里我可以下载原始的XML文件。因此,我必须将XML文件嵌入HTML文件中(例如,作为隐藏的输入字段)。如果有人想下载该文件,通常的方法是提供指向该文件的链接。如果你想把一些东西放到表单中,那么听起来好像你想上传表单中的数据。您还没有真正解释是要在浏览器内部还是外部执行XSLT 1.0转换,XML文件本身或生成的HTML是由浏览器加载的,是从文件系统还是从HTTP(S)服务器加载的。我无法向该文件添加下载链接,因为该文件是安全系统的一部分。因此,我必须将其嵌入HTML文件中。
    <!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>