4

重複の可能性:
XSLTを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ファイルを開くと、何も表示されません。指示どおりにチュートリアルからコピーしたので、ここで何がうまくいかなかったのかわかりません。何が表示の欠如を引き起こしているのかについて、何か手がかりはありますか?

4

1 に答える 1

4

使用するブラウザーのXSLT制約によっては、何も表示されない場合があります。

Chrome19.0.1084.46とFirefox3.6.22を使用してファイルをローカルでテストしました。

Firefoxでは問題なく表示できましたが、Chromeでは何も表示されませんでした。

Chromeの開発者ツールでコンソールタブを開くと、次のメッセージが表示されます。

URL file:///temp/web/catalog.xmlのフレームからURL file:///temp/web/catalog.xslを読み込もうとするのは安全ではありません。ドメイン、プロトコル、およびポートは一致する必要があります。

次に、Tomcatを起動して2つのファイルをデプロイし、Chromevoilàからxmlにアクセスすると、期待どおりにすべてが表示されます。

file:///を使用してアクセスしていると思いますが、これはこの問題に関連していますバグ397894

于 2012-05-17T18:42:51.507 に答える