Подтвердить что ты не робот

Как преобразовать строку в объект XML в JavaScript?

Я знаю этот вопрос уже существующий, но мне не посчастливилось.

У меня есть приложение, которое загружает физический XML-документ с помощью следующего метода:

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

Я анализирую XML и преобразовываю его в строку, которая сохраняется в переменной, чтобы ее можно было легко сохранить в базе данных. Как я могу теперь преобразовать данные в эту переменную обратно в объект XML, чтобы он мог быть проанализирован как таковой?

4b9b3361

Ответ 1

Версия, отличная от 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);
}

Ответ 3

Если он все еще находится в формате XML, вы можете просто его обернуть в функцию jQuery и начать использовать jQuery для его анализа. Например:

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