Как сериализовать DOM в текст XML с помощью JavaScript кроссбраузерным способом?

У меня есть объект XML (загруженный с помощью XMLHTTPRequestresponseXML). Я изменил объект (используя jQuery) и хочу сохранить его как текст в строке.

По-видимому, в Firefox и др. Есть простой способ сделать это:

var xmlString = new XMLSerializer().serializeToString( doc );

(от розетка)

Но как это сделать в IE6 и другие браузеры (конечно, не ломая Firefox)?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
26
0
23 341
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать 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;
}

Нашел здесь.

Спасибо ... Я наконец нашел это после двух дней поисков. (Мне потребовалось время, чтобы понять, что .xml просто не существует для FF / Chrome, я предполагал, что делаю что-то не так.)

Marcel Popescu 04.09.2011 23:02

В настоящее время 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 02.06.2012 23:33

@cburgmer это не узел xml

Esailija 20.07.2012 17:03

@Esailija Я не понимаю, а что тогда? Я ожидаю, что XMLSerializer сериализует xmlNode в <img src… /> (обратите внимание на косую черту в конце)

cburgmer 24.07.2012 16:28

@cburgmer это html-узел, вы создали его с помощью html-документа. Узлы XML не имеют таких свойств, как .src. Посмотрите, что имеет фактический элемент xml с: console.dir( document.implementation.createDocument( null, "xml", null ).createElement("img") )

Esailija 24.07.2012 17:11

Другие вопросы по теме