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 中国語 Web サイトの他の関連記事を参照してください。