哪个浏览器可以显示通过XSLT转换的XML数据?

8 浏览
0 Comments

哪个浏览器可以显示通过XSLT转换的XML数据?

假设有一个名为data.xml的文件,以及一个文件是format.xsl(或者是format.xml?),它用于转换XML数据并使用CSS格式化它,那么哪个浏览器可以显示它?应该打开哪个文件?(.xsl还是.xml?)\n实际上,我在另一个示例中看到XSLT文件的第一行是href=\"format.xsl\",所以我以为XSLT文件已经是.xsl了?那为什么它要链接到另一个.xsl文件?到底有几个文件,是2个还是3个?

0
0 Comments

问题的原因是在Mac上,使用Chrome和Safari浏览器打开XML文件时都无法显示任何内容。解决方法是通过命令行运行xsltproc来先获取一个HTML文件,然后再用浏览器打开该HTML文件。以下是运行命令:

xsltproc <XSL file> <XML file> > test.html

然后用浏览器打开test.html文件。

在macOS 10.14.5上,xsltproc运行得很好。我不得不编辑.xsl文件以删除一段被xsltproc标记为某种无意义错误的JavaScript代码块。Safari以前可以在XSLT文件与XML文件位于同一目录时打开XML文件

0
0 Comments

问题的出现原因是因为某些浏览器不支持展示通过XSLT转换的XML数据。解决方法是使用支持该功能的浏览器。

许多浏览器都支持XML-stylesheet处理指令。如果将其包含在XML文件中,并使用浏览器打开此XML文件,浏览器将加载指定的XSLT,以XML文件为输入运行它,并显示XSLT的输出而不是原始的XML文档。具体规范可以在此处找到:http://www.w3.org/TR/xml-stylesheet/

维基百科的XSLT条目http://en.wikipedia.org/wiki/XSLT有一个如何使用处理指令的示例。基本上,您只需在XML文件的顶部(在前导之后)添加此行,其中'example2.xsl'是指向您的XSLT文件的路径:

<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>

火狐和IE都应该支持这个功能(可能还有其他许多浏览器,但我从未尝试过 - 这个功能并不经常使用)。我刚试了一下当前的Safari和Chrome,它们都支持,尽管如果是本地文件,Chrome不会打开它。

如果XSL将XML转换为XHTML,如果将XHTML命名空间添加到XSL中,Chrome应该能够打开/转换本地文件。对于本地XML文件,我也不得不为FireFox做同样的事情。参见:stackoverflow.com/questions/2981524/…

这是因为安全性问题。如果互联网资源可以使用您的磁盘文件,那将是可怕的。

火狐不再打开XSLT,但会显示XML的内容。Chrome以及Edge不仅禁止XSLT,还不会显示XML的内容。IE现在基本上已经不再使用了。

0
0 Comments

2010年8月,所有主流浏览器都支持客户端XSLT转换。只需打开.xml文件,相关的.xsl文件将被使用。通常这个脚本会构建一个HTML文档并即时显示。也可以通过服务器使用PHP等进行转换。

要关联一个XSLT脚本,.xml文件需要加入以下一行代码:

<?xml-stylesheet type="text/xsl" href="script.xsl" ?>

编辑于2021年4月18日:这个问题已经有10年了,发生了很多变化。现在可以使用Saxon-JS在浏览器中运行XSLT 3.0。在Github上有一个Hello World的示例代码。

0