xml在xsl文件的不同路径中时未格式化

时间:2017-03-17 17:07:17

标签: xml firefox xslt

我正在尝试使用firefox打开一个xml文件。该文件包含

<?xml-stylesheet type='text/xsl' href='/home/myname/myfolder/Template.xsl'?>

和Template.xsl是xml文件的同一文件夹中的文件。 通过这种方式,我可以正确显示xml,但我需要将其移动到不同的文件夹中。 问题是,如果我将xml移动到另一个文件夹并尝试打开它,它似乎不再读取xsl文件(除非新文件夹是以下之一:/ home,/ home / myname /或/ home / myname / myfolder)。 我无法理解这种行为,因为在href选项中我正在编写xsl文件的绝对路径。如果我在xsl文件的不同路径中移动它,有没有办法可视化xml?

任何帮助表示赞赏!提前谢谢。

1 个答案:

答案 0 :(得分:0)

IIRC FireFox(甚至更多Chrome)的安全措施将阻止从(XML文件的)当前目录以外的任何地方打开本地文件。

所以 - 如果使用XML + XSLT组合来创建您的网站 - 保持您的XML和XSLT始终在同一目录中。

<强>更新

一般来说,following comment似乎很好地描述了有关Chrome的当前状态:

  

XML具有与CSS或JavaScript不同的安全属性。在Web安全模型中,CSS和JavaScript是可公开执行的,但XML是私有的。例如,您可以从其他网站运行JavaScript库,但无法读取其XML。遗憾的是,XSLT存在一个安全漏洞,即在文档中应用XSLT允许您读取构成XSLT的XML的内容。这意味着恶意文档可以应用XSLT(例如,由文字处理器保存到本地文件系统的文件)并从中窃取信息。

     

鉴于他的情况,我们面临着权衡。我们可以允许本地XSLT,这是一部分观众会喜欢的功能,但这样做会打开一个安全漏洞。在这种情况下,我们权衡了替代方案,并决定许多外围设备的安全性为少数人提供支持。

所以, FireFox Chrome 更好 - 但是在这方面都很糟糕。