我需要JavaScript脚本来将XML文件通过XSLT表解析为XHTML代码。我的代码与Firefox,Opera和Safari兼容。在Internet Explorer中使用XSLT转换XML
function loadXMLFile(path) {
var file = document.implementation.createDocument("", "", null);
file.async = false;
file.load(path);
return file;
}
function parseXMLFile() {
var xml = loadXMLFile("data.xml");
var xsl = loadXMLFile("data.xsl");
var xslt = new XSLTProcessor();
xslt.importStylesheet(xsl);
var xhtml = xslt.transformToFragment(xml, document);
document.firstChild.replaceChild(xhtml, document.firstChild);
}
parseXMLFile();
这是Internet Explorer和Chrome的无效代码。我知道IE的Microsfot.XMLDOM库,但我不知道如何使用它。如何为IE和可选Chrome编写好的代码?
你不想 “通过XSLT解析XML”。您想“使用XSLT转换XML”。我建议适应这个问题。注意:尽管在XSLT中编写XML解析器在技术上是可行的(XSLT是一种图灵完备语言),但您绝对不想去那里。 – ndim 2011-03-07 15:23:01
我想要解决方案,我想从核心编写脚本。 – 2011-03-07 16:40:16
达米安,你瞄准哪个版本的IE?要在IE 7以后跨浏览器加载XML文档,您可以使用XMLHttpRequest例如'var req = new XMLHttpRequest(); req.open('GET','data.xml',false); req.send(NULL); var xml = req.response.XML;'。这应该也适用于Chrome。对Chrome应用XSLT应该像Mozilla一样工作(即使用新的XSLTProcessor()),使用IE,您可以使用transformNode方法(http://msdn.microsoft.com/zh-cn/library/ms761399%28v=VS.85 %29.aspx),你可以得到一串XSLT结果,然后你可以用insertAdjacentHTML插入。 – 2011-03-07 17:22:28