Xml 转换失败,没有错误消息

Xml 转换失败,没有错误消息,xml,xslt,opera,Xml,Xslt,Opera,我有以下XML <?xml version='1.0' ?> <?xml-stylesheet type='text/xsl' href='Transformations\style.xsl'?> <test> </test> 和common.xsl <?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/

我有以下XML

<?xml version='1.0' ?>
<?xml-stylesheet type='text/xsl' href='Transformations\style.xsl'?>
<test>
</test>
和common.xsl

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/> 
</xsl:stylesheet>

当我在Opera中打开XML时,它说

此文档的XSLT样式表无效。来自XSLT引擎的错误消息:

而且在
后面没有进一步的错误消息。它在IE和Firefox中工作

有什么问题吗

我已经试过在Dragonfly和错误控制台中查找,但是什么都没有

版本信息:
歌剧12.17

Windows 7 SP1 x64

诊断问题,关注未成功的结果,我发现未找到
Common.xsl
。Opera查找文件的路径不包括
Transformations
文件夹

这将引导我找到XML中的样式表路径:

<?xml-stylesheet type='text/xsl' href='Transformations\style.xsl'?>

用斜杠替换反斜杠解决了问题:

<?xml-stylesheet type='text/xsl' href='Transformations/style.xsl'?>

问题似乎只存在于包含的
common.xsl
。如果省略include,即使使用反斜杠,转换也只能使用
style.xsl


正如@IanRoberts在评论中提到的,Opera将
href
属性视为URI,并将(无效)文件名
Transformations\style.xsl
替换为
Common.xsl

href是URI,而不是文件路径,因此它需要是正斜杠。我怀疑发生的情况是,当您使用反斜杠时,浏览器能够加载
style.xml
,但当它试图根据基本URI
文件:/path/to/Transformations\style.xsl
解析相对URI
common.xsl
时,它会得到
文件:/path/to/common.xsl
(因为在URI规则下,
to/
是URI中的最后一个目录段)。
<?xml-stylesheet type='text/xsl' href='Transformations/style.xsl'?>