Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪个浏览器可以显示XSLT转换的XML数据?_Xml_Xslt - Fatal编程技术网

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

哪个浏览器可以显示XSLT转换的XML数据?,xml,xslt,Xml,Xslt,比如说,如果有一个文件名为data.xml,另一个文件名为format.xsl(或者是format.xml),它将转换xml数据并使用CSS对其进行格式化,那么哪个浏览器可以显示它?应该打开哪个文件?(.xsl或.xml?) 实际上,我在另一个示例中看到XSLT文件的第一行是tohref=“format.xsl”,因此我认为XSLT文件已经是.xsl?那它怎么会链接到另一个.xsl文件呢?有多少个文件,2个还是3个?许多浏览器支持XML样式表处理指令。如果它包含在XML文件中,并且您使用浏览器打

比如说,如果有一个文件名为
data.xml
,另一个文件名为
format.xsl
(或者是
format.xml
),它将转换xml数据并使用CSS对其进行格式化,那么哪个浏览器可以显示它?应该打开哪个文件?(
.xsl
.xml
?)


实际上,我在另一个示例中看到XSLT文件的第一行是to
href=“format.xsl”
,因此我认为XSLT文件已经是
.xsl
?那它怎么会链接到另一个
.xsl
文件呢?有多少个文件,2个还是3个?

许多浏览器支持XML样式表处理指令。如果它包含在XML文件中,并且您使用浏览器打开此XML,浏览器将加载指定的XSLT,以XML文件作为输入运行它,并显示XSLT的输出,而不是原始XML文档。规范可在此处找到:

有一个如何使用处理指令的示例。基本上,您只需要在XML文件的顶部添加这一行(在序言之后),其中“example2.xsl”是指向XSLT文件的路径:


Firefox和IE都应该支持这一点(可能还有许多其他浏览器,但我从未尝试过——这一功能并不经常使用)。

有两个文件,一个是包含数据的.xml文件,另一个是包含XSLT脚本的.xsl文件,用于转换。截至2010年8月,所有主流浏览器都支持客户端XSLT转换。打开.xml文件,将使用关联的.xsl文件。通常,脚本构建一个动态显示的html文档。服务器也可以使用PHP等进行转换。
要关联XSLT脚本,.xml文件需要这样一行:

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


编辑18.04.2021:这个问题已经有10年了,已经发生了很多事情。现在可以使用Saxon JS在浏览器中运行XSLT 3.0。在Github上有一个很好的语法分析工具。

Firefox和Internet Explorer(肯定是6版或更高版本,也可能是更早的版本)可以很好地解析XML/XSL。实际上,您可以用Javascript编写客户端解析器,这两种浏览器都可以很好地使用它

您可能希望确保不使用任何特定于供应商的部件,tho,这可能会破坏兼容性(例如)。这同样适用于其他解析器(例如node-set()函数,它在MSXML所有解析器之间是不同的)


在XSL文件中,可以包含另一个XSL文件。一个或多个XSL文件。这样,您就可以在另一个XSL文件中重复使用模板。

我认为所有浏览器都支持部分模板


下面是一些图表:

在mac上,我尝试用Chrome和Safari打开XML文件,但都没有显示任何内容

我的解决方案是从命令行运行,首先获取HTML,然后用浏览器打开HTML。命令如下:

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

现在用浏览器打开
test.html

刚刚尝试了当前的Safari和Chrome,它们都支持它,尽管Chrome没有在本地文件中打开它。如果XSL正在将XML转换为XHTML,如果XHTML命名空间添加到XSL中,Chrome应该打开/转换本地文件。我不得不在本地XML文件中对FireFox做同样的事情。看:这是因为安全。如果internet上的资源可以使用磁盘上的文件,那就太糟糕了。xsltproc在macOS 10.14.5上运行得很好。我确实需要编辑.xsl文件来删除一个javascript块,xsltproc一直用某种毫无意义的错误标记该块。Safari过去能够在XSLT位于同一目录而没有xsltproc的情况下打开XML