web-dev-qa-db-ja.com

JavaScriptで文字列をXMLオブジェクトに変換する方法は?

this の質問がすでに存在することは承知していますが、運がありません。

次の方法で物理的なXMLドキュメントを読み込むアプリケーションがあります。

jQuery.ajax({
    type: "GET",
    url: fileName,
    dataType: "xml",
    success: function (data) {
        // etc...
    }
});

XMLを解析し、変数に保存される文字列に変換して、データベースに簡単に保存できるようにします。このように解析できるように、この変数のデータをXMLオブジェクトに変換する方法を教えてください。

26
Jack Roscoe

非jQueryバージョン:

_var parseXml;

if (window.DOMParser) {
    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 {
    parseXml = function() { return null; }
}

var xmlDoc = parseXml("<foo>Stuff</foo>");
if (xmlDoc) {
    window.alert(xmlDoc.documentElement.nodeName);
}
_

JQuery 1.5以降、 jQuery.parseXML() を使用できます。これは上記のコードとまったく同じように機能します。

_var xmlDoc = jQuery.parseXML("<foo>Stuff</foo>");
if (xmlDoc) {
    window.alert(xmlDoc.documentElement.nodeName);
}
_
66
Tim Down

Jqueryでは、$.parseXML(str)https://api.jquery.com/jQuery.parseXML/ を使用できます

5
artrol

まだXML形式である場合は、jQuery関数でラップし、jQueryを使用して解析することができます。例えば:

$(xmlStringFromDB).find('foo');
3
patrickmcgraw