JavaScript может очень хорошо обрабатывать XML, на самом деле Ajax (XMLHttpRequest) сначала предназначался для работы с ajax, но позднее преобладал простой текст. Преобразование узла XML в строку
function XMLToStr(xmlNode){
try{ // Mozilla, Webkit, Opera
return new XMLSerializer().serializeToString(xmlNode);
}catch(E) {
try { // IE
return xmlNode.xml;
}catch(E2){}
}
}
Преобразование строки в объект XML
function strToXML(xmlString){
var dom_parser = ("DOMParser" in window && (new DOMParser()).parseFromString) ||
(window.ActiveXObject && function(_xmlString) {
var xml_doc = new ActiveXObject('Microsoft.XMLDOM');
xml_doc.async = 'false';
xml_doc.loadXML(_xmlString);
return xml_doc;
});
if(!dom_parser){
return false;
}
return dom_parser.call("DOMParser" in window && (new DOMParser()) || window, xmlString, 'text/xml');
}
Использование:
Преобразовать строку в узел XML и извлечь из него некоторые значения
var xml = strToXML('<root><name>abc</name></root>');
console.log(xml.firstChild.nodeName); // root
console.log(xml.firstChild.firstChild.firstChild.nodeValue); // abc
Чтобы загрузить объект XML из вызова Ajax вместо простого текста или JSON, используйте responseXML
вместо responseText
- единственное предостережение в том, что XML должен быть правильно отправлен с сервера, т.е.тип содержимого должен быть правильным, а XML должен быть действительным.