У меня есть объект XML (загруженный с помощью XMLHTTPRequestresponseXML). Я изменил объект (используя jQuery) и хочу сохранить его как текст в строке.
По-видимому, в Firefox и др. Есть простой способ сделать это:
var xmlString = new XMLSerializer().serializeToString( doc );
(от розетка)
Но как это сделать в IE6 и другие браузеры (конечно, не ломая Firefox)?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать doc.xml в Internet Explorer.
Вы получите что-то вроде этого:
function xml2Str(xmlNode) {
try {
// Gecko- and Webkit-based browsers (Firefox, Chrome), Opera.
return (new XMLSerializer()).serializeToString(xmlNode);
}
catch (e) {
try {
// Internet Explorer.
return xmlNode.xml;
}
catch (e) {
//Other browsers without XML Serializer
alert('Xmlserializer not supported');
}
}
return false;
}
Нашел здесь.
В настоящее время Webkit имеет ошибку (например, в Chrome 19) и не возвращает правильный XML: xmlNode = document.createElement ('img'); xmlNode.src = "test.png" xmlNode.alt = "test" (новый XMLSerializer ()). serializeToString (xmlNode); Возвращает: "<img src =" test.png "alt =" test ">"
@cburgmer это не узел xml
@Esailija Я не понимаю, а что тогда? Я ожидаю, что XMLSerializer сериализует xmlNode в <img src… /> (обратите внимание на косую черту в конце)
@cburgmer это html-узел, вы создали его с помощью html-документа. Узлы XML не имеют таких свойств, как .src. Посмотрите, что имеет фактический элемент xml с: console.dir( document.implementation.createDocument( null, "xml", null ).createElement("img") )
Спасибо ... Я наконец нашел это после двух дней поисков. (Мне потребовалось время, чтобы понять, что .xml просто не существует для FF / Chrome, я предполагал, что делаю что-то не так.)