我需要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