JavaScript 中的跨瀏覽器XML 解析
在Web 開發中,經常需要用JavaScript 解析XML 文件,無論瀏覽器或平台正在使用中。然而,實現跨瀏覽器相容性可能很棘手。
解決方案:
下面提供的程式碼提供了一個適用於所有主要瀏覽器(包括 IE 6)的解決方案:
var parseXml; if (typeof window.DOMParser != "undefined") { parseXml = function(xmlStr) { return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml"); }; } else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) { parseXml = function(xmlStr) { var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlStr); return xmlDoc; }; } else { throw new Error("No XML parser found"); }
用法範例:
要使用此解決方案,只需使用要解析的XML 字串呼叫parseXml 函數,如下所示:
var xml = parseXml("<foo>Stuff</foo>");
產生的xml 物件可用於以程式設計方式存取XML 文件。例如,以下程式碼片段檢索根元素的名稱:
alert(xml.documentElement.nodeName);
現場演示:
為了演示此解決方案的功能,現場演示下面提供:
var parseXml; if (typeof window.DOMParser != "undefined") { parseXml = function(xmlStr) { return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml"); }; } else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) { parseXml = function(xmlStr) { var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = "false"; xmlDoc.loadXML(xmlStr); return xmlDoc; }; } else { throw new Error("No XML parser found"); } var xml = parseXml("<foo>Stuff</foo>"); document.body.innerHTML = "Root element: " + xml.documentElement.nodeName;
此程式碼片段解析XML 字串並在文件正文中顯示根元素的名稱。
以上是JavaScript解析XML檔案時如何實現跨瀏覽器相容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!