【问题标题】:Include an xslt stylesheet in a html page在 html 页面中包含 xslt 样式表
【发布时间】:2010-02-10 13:55:55
【问题描述】:

我有一些 JavaScript 需要将 xslt 应用于 ajax 请求的结果。 xslt 在单独的文件“transform.xslt”中定义 - 在我的页面中包含 xslt 的最佳方式是什么?

是否可以使用某种<link... 元素,还是我需要自己为 xslt 发出单独的 http 请求?

【问题讨论】:

  • 我对这个问题的答案很感兴趣(学术上)。我怀疑它超出了您的直接控制范围:服务器必须以正确的 MIME 类型发回主要内容,并且 XML 文档需要对带有“”标头的 xslt 样式表的引用。有了这个,我认为浏览器会执行转换,然后你的文档就会得到结果。但这只是猜测。

标签: javascript html xslt


【解决方案1】:

我认为您需要使用 XMLHttpRequest 从服务器加载样式表,然后您拥有 responseXML,您可以将其与浏览器公开给 Javascript 的 XSLT 转换 API 一起使用(例如,Mozilla 的 importStylesheet 和 IE 的 transformNode)。

除非您将 IE 仅定位在可以使用 XML data island 的地方,例如

<xml id="sheet1" src="sheet.xslt></xml>

在 HTML 文档的 head 部分。然后你的脚本可以使用例如someResponseXML.transformNode(sheet1.XMLDocument).

【讨论】:

  • 所以您认为如果 XML 具有正确的标头,浏览器不会隐式执行转换吗?当然,在 XML 只是没有样式表引用的纯 XML 的情况下,您是对的。
  • 原始问题是“将 xslt 应用于 ajax 请求的结果”。据我了解,这意味着脚本已收到一些 responseXML 对象,现在想要应用 XSLT 样式表。为此,您必须先使用脚本加载样式表。当然,如果您不使用脚本和 XMLHttpRequest 加载原始 XML,而是将其加载到窗口或框架中,那么您可以期望浏览器应用 xml-stylesheet 处理指令中引用的任何样式表。但这只有在 XML 加载到框架/窗口中时才会发生,而不是在使用 XMLHttpRequest 加载时发生。
猜你喜欢
  • 2015-12-19
  • 2023-03-19
  • 2011-01-14
  • 2014-05-11
  • 2013-05-26
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多