0

我们公司的几乎每台服务器都有一个标准的 xml 格式,不用说,这是相当可怕的。我有一个 xslt 样式表,可以更轻松地获取相关信息,但由于许多因素,部署链接到 xml 中的样式表是不切实际的。我正在开发一个 chrome 扩展,以在任何与 url 模式匹配的页面上执行转换。

我的问题是,当您在 chrome 中加载 xml 文档时,浏览器会尝试提供帮助并将其转换为漂亮的 html 格式。除非我可以从我的内容脚本访问源 xml,否则我无法应用我的 xslt。我试图从 url 中获取原始源,并且在扩展程序中遇到了权限问题。

我唯一的另一个想法是使用 jquery 并从他们的 html 中手动解析出来,但这看起来有点痛苦,而且我已经有一个有效的 xsl 可以满足我的一切需求。

有没有更好的方法可以让源 xml 对其进行转换?

4

1 回答 1

1

如果无法插入处理指令,可以使用 JavaScript 触发转换:

function loadXML(fileName,mime) {
  var xmlHttpRequest = new XMLHttpRequest();
  xmlHttpRequest.open("GET",fileName,false);
  if(mime) xmlHttpRequest.overrideMimeType(mime);
  xmlHttpRequest.send("");
  return xmlHttpRequest.responseXML;
}

function transformDocument(url) {
  var xsltProcessor = new XSLTProcessor();
  xsltProcessor.importStylesheet(loadXML('test.xsl','application/xslt+xml'));
  return xsltProcessor.transformToDocument(loadXML(url),document);
}

transformDocument()将返回一个 HTML 元素,然后您可以显示该元素。我看到几个选项:

  • 将其放入 iframe 中。
  • 用转换后的文档替换当前文档(例如通过替换头部和正文)
  • 从转换后的文档中获取一些 div 并将其插入到当前文档中。
  • 将其作为数据 URL 打开。
  • ...
于 2013-01-17T17:40:53.503 回答