Использование браузера XMLSerializer() для создания XML без сущностей XHTML

Я использую XMLSerializer() для вывода XML-документа в памяти, однако он, похоже, «приумножает» элементы, используя стандартные объекты XHTML, такие как   ; . Я хочу создать XML-документ без объектов XHTML.

Мой целевой DTD не определяет эти объекты, поэтому, если пользователь вводит символ с соответствующим объектом XHTML, сериализованный документ имеет неправильный формат (ссылается на неопределенный объект, например )

Может быть, я неправильно строю DOM-дерево? Или есть другой способ избежать того, чтобы XMLSerializer() вел себя так, как если бы это был XHTMLSerializer()?


person Seth    schedule 08.02.2013    source источник
comment
Возможно, вы могли бы включить jsfiddle с примером XML, который вы пытаетесь сериализовать. То, что вы описываете, должно происходить только в том случае, если у вас есть ‹html xmlns=w3.org/1999/xhtml› или DOCTYPE, настроенный на использование XHTML.   -  person matt snider    schedule 08.02.2013
comment
У меня похожая проблема. Вы нашли решение?   -  person Alexander Stolz    schedule 22.10.2014
comment
Нет, с этим не разобрался.   -  person Seth    schedule 23.10.2014


Ответы (1)


рабочая форма в Firefox 38:

new XMLSerializer().serializeToString(document.createRange()
    .createContextualFragment('<div foo="bar&quot;bar">&nbsp;&uuml;</div>'))

результат:

"<div xmlns="http://www.w3.org/1999/xhtml" foo="bar&quot;bar"> ü</div>"

Только стандартные сущности XML и utf-8.

person the8472    schedule 19.01.2015