加载样式表错误:解析XSLT样式表失败。

12

这是我的 XML 文件:

<?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>

当我在火狐浏览器中运行xml文件时,它会提示“错误加载样式表:解析XSLT样式表失败。”错误。我对xml很陌生,请问有谁能告诉我出了什么问题?还请教一下怎么找到错误。谢谢!


2
这个问题为什么被两次踩了?这是一个诚实的问题,也是一个容易犯错的错误。URL和大小写敏感性是与命名空间相关时常混淆的普遍来源。 - G_H
@G_H:完全同意——我刚刚点赞了这个问题以抵消那些反对票。大家也来点赞,我们可以把它的票数变回0。 - Dimitre Novatchev
完成。可能会有非常相似的问题,但只有当你了解实际问题后才能注意到。我肯定不会只看样式表就看到它。 - G_H
4个回答

10

您为XSL指定了错误的命名空间:

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

相反,你必须使用:

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

请记住,XML对大小写敏感


谢谢。我以为它只是一个字符串,没有任何意义。 - Jayanga Kaushalya
@JKAUSHALYA:这是一个有意义的字符串——它可以将一个 XML 词汇表与另一个区分开来。如果这个字符串被打错了,你就会看到发生了什么…… :) - Dimitre Novatchev

6

将命名空间声明更改为

http://www.w3.org/1999/XSL/Transform


4

将xsl样式表的版本号从1.0升级到1.1对我起了作用。

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

2
我有和你一样的问题。最终我找到了解决方法。
解决方法是使用浏览器(在我的情况下是火狐)打开xsl文件,可能会出现错误并修复该错误。
在我的情况下,body标签中缺少斜杠(/)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接