2011-10-18 123 views
5

這是我的xml文件:錯誤加載樣式表:解析XSLT樣式表失敗

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="hello.xsl"?> 
<message> 
    <greeting>Hello World!</greeting> 
</message> 

,這是我的XSL文件:

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/Transform"> 
<xsl:template match="/"> 
<html> 
<body> 
<h1><xsl:value-of select="message/greeting"/></h1> 
</body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 

當我在Firefox上運行的xml文件它給「加載樣式表時出錯:解析XSLT樣式表失敗。「錯誤。我是新來的XML請任何人都可以告訴我什麼是錯誤。你能告訴我一種找到錯誤的方法嗎?謝謝!

+1

爲什麼在大火中這是兩次downvoted?這是一個誠實的問題,也是一個容易犯的錯誤。 URL和區分大小寫是命名空間混淆的常見來源。 –

+0

@G_H:絕對同意 - 我剛剛提出了這個問題來對付downvotes。做同樣的事情,我們把它帶回0. –

+0

完成。可能有幾乎相同的問題,但只有當你知道實際問題時纔會注意到。我肯定不會僅僅通過查看樣式表就可以看到它。 –

回答

6

您指定的XSL一個錯誤的命名空間:

xmlns:xsl="http://www.w3.org/1999/xsl/Transform" 

相反,您必須使用:

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

記住th在XML區分大小寫

+0

謝謝。我認爲這只是一個字符串,並不意味着什麼。 –

+0

@JKAUSHALYA:這是一個確實意味着什麼的字符串 - 它將一個XML詞彙與另一個XML詞彙區分開來。如果這個字符串錯誤輸入,你會看到會發生什麼...... :) –

4

更改名字空間聲明,

http://www.w3.org/1999/ XSL /變換

3

將xsl樣式表版本號從1.0更新爲1.1。

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

我和你有同樣的問題。最後我找到了我的解決方案。

解決方案是用你的瀏覽器打開xsl文件(在我的情況下是firefox),並且可能會發生錯誤並修復錯誤。

在我的情況下,在身體標記中缺少一個/斜槓。