说,如果有一个文件叫data.xml
,文件是format.xsl
(或者是format.xml
?),那就是转换XML数据并对其进行格式化以及使用CSS,然后哪个浏览器可以显示它?应该打开哪个文件? (.xsl
或.xml
?)
实际上我在另一个例子中看到XSLT文件的第一行是href="format.xsl"
,所以我认为XSLT文件已经是.xsl
了?那么它是如何链接到另一个.xsl
文件的呢?有多少个文件,2个或3个?
答案 0 :(得分:20)
有两个文件,一个.xml包含数据,一个.xsl包含用于转换的XSLT脚本。截至2010年8月,所有领先的浏览器都支持客户端XSLT转换。打开.xml文件,将使用关联的.xsl文件。通常,该脚本会构建一个即时显示的html文档。转换也可以由服务器用PHP等完成 要关联XSLT脚本,.xml文件需要如下所示的行:
<?xml-stylesheet type="text/xsl" href="script.xsl" ?>
答案 1 :(得分:9)
许多浏览器都支持XML样式表处理指令。如果它包含在XML文件中并且您使用浏览器打开此XML,则浏览器将加载指定的XSLT,使用XML文件作为输入运行它,并显示XSLT的输出而不是原始XML文档。规范可以在这里找到:http://www.w3.org/TR/xml-stylesheet/
Wikipedia's XSLT entry有一个如何使用处理指令的例子。基本上你只需要在XML文件的顶部添加这一行(在&lt;?xml?&gt; prolog之后),'example2.xsl'是你的XSLT文件的路径:
<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>
Firefox和IE都应该支持这个(可能还有很多其他浏览器,但我从来没有尝试过 - 通常不会使用此功能)。
答案 2 :(得分:1)
Firefox和Internet Explorer(绝对是版本6及更高版本,也可能是早期版本)可以很好地解析XML / XSL。你实际上可以在Javascript中编写一个客户端解析器,这两种浏览器都可以很好地工作。
您可能希望确保不使用任何特定于供应商的部分,这可能会破坏兼容性(例如&lt; msxsl:script&gt;)。这可能适用于其他解析器(例如node-set()函数,它在MSXML所有解析器之间不同)。
在您的XSL文件中,您可以包含另一个XSL文件。或更多XSL文件。这样,您就可以在另一个XSL文件中重复使用模板。
答案 3 :(得分:1)
在Mac上,我尝试使用Chrome和Safari打开XML文件,但都没有显示任何内容。
对我有用的解决方案是从命令行运行xsltproc以首先获取HTML,然后使用浏览器打开HTML。这是命令:
xsltproc <XSL file> <XML file> > test.html
现在使用浏览器打开test.html
。
答案 4 :(得分:0)
我认为所有浏览器都支持支持。