Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
在chrome中访问未转换的xml_Xml_Google Chrome_Xslt - Fatal编程技术网

在chrome中访问未转换的xml

在chrome中访问未转换的xml,xml,google-chrome,xslt,Xml,Google Chrome,Xslt,我们公司几乎每台服务器都使用标准的xml格式,不用说,这相当可怕。我有一个xslt样式表,可以更容易地获取相关信息,但是由于许多因素,在xml中部署链接的样式表是不实际的。我正在开发一个chrome扩展,以便在任何与url模式匹配的页面上执行转换 我的问题是,当您在chrome中加载xml文档时,浏览器会尽力提供帮助,并将其转换为漂亮的html格式。除非可以从内容脚本访问源xml,否则无法应用xslt。我试图从url获取原始源,但在扩展中遇到权限问题 我唯一的另一个想法是使用jquery并从ht

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

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

我唯一的另一个想法是使用jquery并从html中手动解析出来,但这看起来有点痛苦,而且我已经有了一个有效的xsl来完成我需要的一切


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

如果无法插入处理指令,可以使用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打开