Обновленный ответ на 2017 год
Следующее будет анализировать строку XML в документ XML во всех основных браузерах. Если вам не нужна поддержка IE <= 8 или какой-то непонятный браузер, вы можете использовать следующую функцию: </p>
function parseXml(xmlStr) {
return new window.DOMParser().parseFromString(xmlStr, "text/xml");
}
Если вам требуется поддержка IE <= 8, вам подойдет следующее: </p>
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");
}
Получив Document
через parseXml
, вы можете использовать обычные методы / свойства обхода DOM, такие как childNodes
и getElementsByTagName()
, чтобы получить нужные вам узлы.
Пример использования:
var xml = parseXml("<foo>Stuff</foo>");
alert(xml.documentElement.nodeName);
Если вы используете jQuery, с версии 1.5 вы можете использовать его встроенный метод parseXML()
, который функционально идентичен функции выше.
var xml = $.parseXML("<foo>Stuff</foo>");
alert(xml.documentElement.nodeName);