XML样式表在bash中使用“xsltproc”,但不在浏览器中使用

时间:2011-06-29 12:42:49

标签: xml xslt stylesheet

我正在尝试定义一个XSLT样式表来在浏览器中对XML进行visuzalize。我有一个以下样式表:

<html xsl:version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <head />
    <body>
      <div>
      <xmp>
        <xsl:copy-of select="/" />
      </xmp>
      </div>
    </body>
</html>

在bash中运行“xsltproc”具有可以在浏览器中轻松显示的预期结果。但是,将样式表附加为

 <?xml-stylesheet type="text/xsl" href="stylesheet.xsl" ?>

仅显示文本值,标签丢失。尝试使用FF,Chrome,Safari。

1 个答案:

答案 0 :(得分:0)

我不认为将非标准化的xmp元素与XSLT结合起来会给你你想要的东西。但是,您可以使用样式表将节点序列化为文本,例如来自http://lenzconsulting.com/xml-to-string/xml-to-string.xslhttp://lenzconsulting.com/xml-to-string/。您可以按如下方式导入和使用它:

<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

  <xsl:import href="xml-to-string.xsl"/>

  <xsl:template match="/">
    <html>
        <head />
        <body>
          <div>
          <pre>
            <xsl:call-template name="xml-to-string">
              <xsl:with-param name="node-set" select="node()"/>
            </xsl:call-template>
          </pre>
          </div>
        </body>
    </html>
  </xsl:template>

</xsl:stylesheet>

只要您确保所有样式表模块与XML在同一服务器上,这应该在浏览器中完成。