使用浏览器XMLSerializer()生成不带XHTML实体的XML

时间:2013-02-08 18:26:42

标签: javascript xml dom xmlserializer

我使用XMLSerializer()输出内存中的XML文档,但它似乎正在授权'使用XHTML标准实体的元素,例如& nbsp; 。 我想生成一个没有XHTML的XML文档

我的目标DTD没有定义这些实体,因此如果用户碰巧输入了具有相应XHTML实体的字符,则序列化文档格式不正确(引用未定义的实体,如& nsbp;)

也许我错误地构建了DOM树?或者是否有另一种方法可以避免XMLSerializer()的行为就像它是XHTMLSerializer()?

1 个答案:

答案 0 :(得分:0)

Firefox 38中的

worksforme:

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。