【问题标题】:XML shows blank page when linking XSL链接 XSL 时 XML 显示空白页
【发布时间】:2014-10-30 20:01:01
【问题描述】:

XML 文件:

<?xml version="1.0"  encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="biblio.xsl"?>

<bibliography>
    <entry type="article">
        <title>A History of MOOCs, Open Online Courses</title>
        <author>Jane Karr</author>
        <year>2014</year>
    </entry> 
    <entry type="article">
        <title>Apple Co-Founder Creates Electronic ID Tags</title>
        <author>John Markoff</author>
        <year>2003</year>
    </entry> 
</bibliography>

XSL 文件:

<?xml version="1.0"?>

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

<xsl:template match="/">

    <html>
        <body>
            <h2>Bibliography Entries</h2>
            <table border="1">
                <xsl:for-each select="bibliography/entry">
                    <tr>
                        <td><xsl:value-of select="title"/></td>
                        <td><xsl:value-of select="author"/></td>
                        <td><xsl:value-of select="year"/></td>
                    </tr>
                </xsl:for-each>
            </table>
        </body>
    </html>

</xsl:template>
</xsl:stylesheet>

如果我不将 XSLT 文件链接到 XML 文件,我的 XML 文件将在我的浏览器页面中输出树结构,但如果我链接 XSLT 文件,它将显示一个空白页面。

如果有帮助,我正在使用 Chrome。

谢谢。

【问题讨论】:

    标签: xml xslt


    【解决方案1】:

    我假设您正在从文件系统加载 XML 文档,在这种情况下,出于安全原因,Chrome 不会应用链接的 XSLT,除非您以较低的安全设置启动它。使用 F12 打开浏览器控制台并检查 Chrome 是否显示一条消息,解释为什么未应用 Xslt。

    【讨论】:

    • 我这样做了,但没有显示任何明显的东西。我在控制台中写的只是xml-stylesheet 并且 xslt 不存在于源代码中。
    • 是的,Chrome 支持 XSLT over HTTP,但正如我所解释的,不是从本地文件系统。如果需要,请使用 Firefox。
    • 您发布了完整的代码吗?在这种情况下,关闭 &lt;/xsl:stylesheet&gt; 似乎丢失了。
    • 是的,抱歉我忘记缩进了。 +1 用于解释和 Firefox 建议。我现在正在使用 Firefox,它正在工作。
    【解决方案2】:

    如果有人在启动他们的 XML 和 XSLT 文件时仍有问题 - 现在 Mozzila 也出于安全原因不应用链接的 XSLT - 如果你想应用你的 XSLT,你需要将 about:config 中的 privacy.file_unique_origin 属性更改为 false样式。

    对于那些不知道的人 - 要进入 about:config,您只需在 Mozzila 搜索栏中输入即可。

    【讨论】:

      【解决方案3】:

      您的代码运行良好。只需按如下方式启动 Chrome:

      Chrome.exe --allow-file-access-from-files
      

      【讨论】:

      • 我已经尝试过了,但不起作用。我在想是浏览器的问题?我编辑了我的问题,使其符合您提供的答案。不幸的是,正如我所说,它不起作用:(
      • 好的,知道了 - 以这种方式启动您的 Chrome:Chrome.exe --allow-file-access-from-files。默认情况下,出于安全原因,本地 XSLT 处理被禁用。
      猜你喜欢
      • 2018-10-30
      • 1970-01-01
      • 2012-03-27
      • 2017-03-31
      • 2013-11-30
      • 2016-05-01
      • 2014-07-19
      • 2015-06-06
      • 2020-07-03
      相关资源
      最近更新 更多