1

如果无法访问 XML 文件或数据,您如何重现 Web 页面正在使用 XSL 转换的 XML 文件的副本?

我可以访问包含 XSL 代码的 xml.config 文件。我找到了输出 XML 文件的所有数据的解决方案,但它没有帮助,因为它是一堵价值墙。它不包含 xml 标签,也不提供节点树。

4

2 回答 2

2

使用

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/">
  <xsl:copy-of select="."/>
 </xsl:template>
</xsl:stylesheet>

当此转换应用于任何 XML 文档时,例如这个:

<nums>
  <num>01</num>
  <num>02</num>
  <num>03</num>
  <num>04</num>
  <num>05</num>
  <num>06</num>
  <num>07</num>
  <num>08</num>
  <num>09</num>
  <num>10</num>
</nums>

产生了想要的结果——相同的 XML 文档:

<nums>
   <num>01</num>
   <num>02</num>
   <num>03</num>
   <num>04</num>
   <num>05</num>
   <num>06</num>
   <num>07</num>
   <num>08</num>
   <num>09</num>
   <num>10</num>
</nums>
于 2012-09-09T17:52:55.587 回答
1

好吧,如果您只需要查看数据,则可以使用如下简单的方法:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" indent="yes"/>

  <xsl:template match="*">
    <xsl:value-of select="concat('&lt;',name())" />
    <xsl:apply-templates select="@*" />
    <xsl:text>&gt;</xsl:text>
    <xsl:apply-templates select="node()"/>
    <xsl:value-of select="concat('&lt;/',name(),'&gt;')" />
  </xsl:template>

  <xsl:template match="@*">
    <xsl:value-of select="concat(' ',name(),'=&quot;',.,'&quot;')" />
  </xsl:template>
</xsl:stylesheet>

这不会输出注释或处理指令,但如果您只需要查看文档的数据和结构就足够了。如果您需要更详细的内容,您可能会找到一个将 XML 文档转换为显示它的网页的 xslt。我有一个正在进行中的工作:http: //www.flynn1179.net/xml/DisplayXml.xslt。我在我的网站上使用它,但周围可能有更好的东西。

于 2012-09-09T18:28:32.577 回答