我試圖按照關於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">
但是,這並不適合我在本地工作, 有什麼建議麼?
您是否在Chrome中試用? http://stackoverflow.com/questions/3828898/can-chrome-be-made-to-perform-an-xsl-transform-on-a-local-file –
什麼是「*不適合我lcoally * 「是什麼意思?你做什麼來測試它?你看到了什麼結果? –
另外,在你的最後一個例子中,如果你提供的文件名是實際的,那麼這行應該是:'<?xml-stylesheet href =「xsl.xsl」type =「text/xsl」?>'。 –