2015-07-21 68 views
-1

我試圖按照關於xslt的W3Schools的基本示例進行操作。使用XSLT將XML本地鏈接到HTML頁面

xml.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<catalog> 
    <cd> 
     <title>Hide your heart</title> 
     <artist>Bonnie Tyler</artist> 
     <country>UK</country> 
     <company>CBS Records</company> 
     <price>9.90</price> 
     <year>1988</year> 
    </cd> 
    <cd> 
     <title>Greatest Hits</title> 
     <artist>Dolly Parton</artist> 
     <country>USA</country> 
     <company>RCA</company> 
     <price>9.90</price> 
     <year>1982</year> 
    </cd> 
</catalog> 

xslt.xslt:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="/"> 
    <html> 
    <body> 
    <h2>My CD Collection</h2> 
    <table border="1"> 
     <tr bgcolor="#9acd32"> 
     <th style="text-align:left">Title</th> 
     <th style="text-align:left">Artist</th> 
     </tr> 
     <xsl:for-each select="catalog/cd"> 
     <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> 

每當我嘗試在本地做它不工作W3Schools的之外,發現了以下錯誤。

該XML文件似乎沒有任何關聯的樣式信息。文檔樹如下所示。

環顧堆棧溢出我似乎無法找到我的具體查詢的答案,因爲這應該很簡單。

我的問題是:xslt文件如何知道我希望它使用xml.xml作爲匹配的xml?

從邏輯上講,您會認爲您必須將其包含在xslt文件中。當我環顧四周,我看到人們做到以下幾點:

xml.xml:

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

xsl.xsl:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs" 
    version="1.0"> 

但是,這並不適合我在本地工作, 有什麼建議麼?

+0

您是否在Chrome中試用? http://stackoverflow.com/questions/3828898/can-chrome-be-made-to-perform-an-xsl-transform-on-a-local-file –

+0

什麼是「*不適合我lcoally * 「是什麼意思?你做什麼來測試它?你看到了什麼結果? –

+0

另外,在你的最後一個例子中,如果你提供的文件名是實際的,那麼這行應該是:'<?xml-stylesheet href =「xsl.xsl」type =「text/xsl」?>'。 –

回答

0

XSLT文件不知道您要使用xml.xml。相反,XML文件知道您想要使用xslt.xslt

這條線,二號線添加到您的xml.xml文件:

<?xml-stylesheet href="xslt.xslt" type="text/xsl" ?> 

另外請注意,Chrome不喜歡使用XSL與file://風格的URL。請使用非Chrome瀏覽器或使用http://網址。

+0

是啊你是對的,基本上我上面的工作,只是不在鉻! – gardni