在HTML页面中引入XSLT样式表

5

我有一些 JavaScript 需要将 xslt 应用于 ajax 请求的结果。xslt 在一个名为 "transform.xslt" 的单独文件中定义 - 最好的方法是将 xslt 包含在我的页面中吗?

是否可能使用某种 <link... 元素,或者我需要自己为 xslt 进行单独的 http 请求?


我在学术上对这个问题很感兴趣。我的猜测是这不在你的直接控制范围内:服务器必须通过正确的MIME类型返回主要内容,XML文档需要一个带有"<?xml-stylesheet>"头部的xslt样式表的引用。有了这些,我认为浏览器会执行转换,然后你的文档会得到结果。但这只是一个猜测。 - Pointy
1个回答

2
我认为您需要使用XMLHttpRequest从服务器加载样式表,然后您就有了responseXML,并且可以将其与浏览器公开的JavaScript XSLT转换API一起使用(例如,在Mozilla中使用importStylesheet,在IE中使用transformNode)。
除非您只针对IE,否则您可以使用XML数据岛(例如此处)来代替。
<xml id="sheet1" src="sheet.xslt></xml>

在您的HTML文档的头部部分添加样式表。然后,您的脚本可以使用例如someResponseXML.transformNode(sheet1.XMLDocument)

那么您认为如果XML具有正确的标头,浏览器会隐式执行转换吗?当然,在XML只是纯粹的XML而没有样式表引用的情况下,您是正确的。 - Pointy
原始问题说“将XSLT应用于ajax请求的结果”。在我的理解中,这意味着脚本已经接收到一些responseXML对象,并且现在想要应用一个XSLT样式表。为了做到这一点,您必须首先使用脚本加载样式表。当然,如果您不是使用脚本和XMLHttpRequest加载原始XML,而是在窗口或框架中加载它,则可以期望浏览器应用在xml-stylesheet处理指令中引用的任何样式表。但是,这只会发生在加载XML的框架/窗口中,而不是在使用XMLHttpRequest加载后。 - Martin Honnen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接