【问题标题】:I can not view the XML in browser by xslt我无法通过 xslt 在浏览器中查看 XML
【发布时间】:2014-06-03 19:37:55
【问题描述】:

我在 XML 和 XSLT 中使用下面提到的代码

XML:

   <?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <?xml-stylesheet type="text/xsl" href="wiley.xsl"?>
   <!DOCTYPE component PUBLIC "-//JWS//DTD WileyML 20110801 Vers 3Gv2.0//EN" "Wileyml3gv20-flat.dtd">
   <component xmlns="http://www.wiley.com/namespaces/wiley" version="2.0" type="serialArticle" xml:lang="en" xml:id="ecog473">

XSLT:

 <?xml version='1.0' encoding='utf-8' ?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink">
 <xsl:output method="html"/>
 <xsl:template match="/">

但是显示的文本没有任何样式(作为文本),并且它在文档末尾已损坏并显示此错误消息。

IE 中的错误,

无法使用 XSL 样式表查看 XML 输入。请更正错误,然后单击“刷新”按钮,或稍后重试。


不支持在 DTD 中使用默认命名空间声明属性。

但是,我可以在浏览器中查看文本;当我在下面使用它时。

在 XML 中:

   <?xml version="1.0" encoding="UTF-8" standalone="no"?>
   <!--<!DOCTYPE component PUBLIC "-//JWS//DTD WileyML 20110801 Vers 3Gv2.0//EN" "Wileyml3gv20-flat.dtd">-->
   <?xml-stylesheet type="text/xsl" href="wiley.xsl"?>
   <component version="2.0" type="serialArticle" xml:lang="en" xml:id="ecog473">

删除了组件标签中的 ns (xmlns="http://www.wiley.com/namespaces/wiley")

如何查看所有内容(DTD 声明,ns)?

谢谢。

【问题讨论】:

  • 注意IE只支持XSLT 1.0版本,不支持2.0

标签: xml xslt view


【解决方案1】:

您需要在样式表中声明命名空间,为其分配前缀并在处理 XML 文档的元素时使用该前缀(在您的帖子中未包含的代码部分中)。

【讨论】:

    【解决方案2】:

    你已经打开了 XSLT,这应该可以工作:

    <?xml version='1.0' encoding='utf-8' ?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink">
         <xsl:output method="html"/>
            <xsl:template match="/">
            </xsl:template>
    
    </xsl:stylesheet>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2011-06-29
      • 1970-01-01
      • 2016-01-05
      相关资源
      最近更新 更多