为什么这个XML文件没有显示任何内容?

时间:2012-05-16 07:45:54

标签: xml xslt google-chrome

  

可能重复:
  How can I make XSLT work in chrome?

我有这个XML文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="catalog.xsl"?>

<catalog>
    <album>
        <title>Exodus</title>
        <artist>Bob Marley</artist>
        <country>Jamaica</country>
        <price>19,99</price>
    </album>
    <album>
        <title>Black Album</title>
        <artist>Metallica</artist>
        <country>USA</country>
        <price>20,00</price>
    </album>
    <album>
        <title>Nevermind</title>
        <artist>Nirvana</artist>
        <country>USA</country>
        <price>22,00</price>
    </album>
</catalog>

链接到此XSL文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

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

    <xsl:template match="/">
        <html>
            <body>
                <h2>My Catalog</h2>
                <table border="1">
                    <tr bgcolor="#9ACD32">
                        <th>Title</th>
                        <th>Artist</th>
                    </tr>
                    <xsl:for-each select="catalog/album">
                        <tr>
                            <td><xsl:value-of select="title"/></td>
                            <td><xsl:value-of select="artist"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
           </body>
       </html>
    </xsl:template>
</xsl:stylesheet>

当我在浏览器中打开XML文件时,我看不到任何显示内容。由于我按照指示复制了教程,我不确定这里出了什么问题。你有什么可能导致缺乏显示的线索吗?

1 个答案:

答案 0 :(得分:4)

根据您使用的浏览器的XSLT限制,您可能看不到任何内容。

我使用Chrome 19.0.1084.46和Firefox 3.6.22在本地测试了您的文件。

在Firefox中我可以毫无问题地查看它,但在Chrome中我什么都没看到。

当我在Chrome中的开发者工具中打开控制台选项卡时,会显示以下消息:

  

不安全的尝试加载网址   file:///temp/web/catalog.xsl来自带URL的帧   文件:///temp/web/catalog.xml。域,协议和   端口必须匹配。

然后,我启动了Tomcat并部署了2个文件,当我从Chrome voilà访问xml时,它会按预期显示所有内容。

我猜您正在使用file:///访问它,这与此问题有关Bug 397894