猿问

可以使Chrome对本地文件执行XSL转换吗?

我一直在研究xslt,并开始使用w3schools上的示例进行测试。


但是,当我将xml和xsl保存在文件中并尝试在本地打开它们时,chrome将不会执行xsl转换。它只是显示一个空白页。


我已经将<?xml-stylesheet type="text/xsl" href="style.xsl">标记添加到xml文档中,并且Firefox渲染了它应有的外观。另外,如果我通过网络服务器查看文件,则chrome会以应有的外观显示文件。


当链接位于本地时,chrome是否在查找样式表信息时遇到问题?将href更改为file:///C:/xsl/style.xsl没有任何区别。


更新:这似乎是不将file:/// *视为相同来源的安全策略的副作用。这会使控制台中出现以下错误:


不安全的尝试从带有URL file:/// C:/xsl-rpg/data.xml的框架中加载URL file:/// C:/xsl-rpg/style.xsl。域,协议和端口必须匹配。


慕码人2483693
浏览 628回答 3
3回答

红糖糍粑

简短的答案是“不,请使用其中一种多样的浏览器 ”。这样做不起作用的原因是由于安全问题,Chrome已通过有争议的方式[1] [2] [3] [4]解决了安全问题,即通过阻止XML文件访问同一目录中的本地XSLT文件来实现,而HTML文件可以访问同一目录中的.CSS文件。在上述问题中,用户要求提供更清晰的错误消息(因为域,协议和端口实际上是匹配的),或者至少显示不带样式的XML。Chrome开发人员忽略了这些请求。

潇潇雨雨

如果您要坚持使用OP,答案是“否”(正如其他人指出的那样),但是解决此问题的一种方法是运行一个简单的网络服务器并通过chrome中的http打开文件。如果安装了python 2.x,则可以通过键入以下内容来运行网络服务器:python -m SimpleHTTPServer或者在python 3.x中:python3 -m http.server然后http://localhost:8000/yourfile.xml在chrome中使用打开文件。希望您只想完成工作,而不必使用file://
随时随地看视频慕课网APP
我要回答