2011-10-18 44 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),并且可能会发生错误并修复错误。

在我的情况下,在身体标记中缺少一个/斜杠。