【发布时间】:2016-10-29 21:03:23
【问题描述】:
我正在编写一个浏览器扩展,它将文档序列化为 XML 并将其发送到后端(这对我们来说是黑盒的)。
当序列化程序在标签上遇到“xml:lang”属性时,它会(仅在 IE、Edge 中)向该节点添加“xmlns:xml”命名空间定义。
这会导致后端的 XML 解析错误。
如何在不添加“xmlns:xml”属性的情况下进行序列化?
// We create DOM node by parsing it from string
// Then we serialize it again
var content = "'<span id="el" xml:lang="ar" lang="ar">سالم</span>'";
var el = new DOMParser().parseFromString(content, 'application/xml');
var serialized = new XMLSerializer().serializeToString(el);
console.log(serialized);
// <span id="el" lang="ar" xml:lang="ar" xmlns:xml="http://www.w3.org/XML/1998/namespace">سالم</span>
// Serializing parsed node: attribute 'xmlns:xml' is added, how do I get rid of that?
【问题讨论】:
标签: xml internet-explorer xml-parsing microsoft-edge browser-extension