【发布时间】:2014-03-01 11:48:38
【问题描述】:
我想要做的是将 DOM 序列化为 XML。所以我创建了一个新文档
var doc = document.implementation.createDocument ('http://AOR-AppML.org', 'Application', null);
然后我添加节点、属性等。这工作正常。
问题是我在 Google Chrome 和 Mozilla Firefox 中对 XMLSerializer 有不同的行为。
Chrome 控制台输出:
<Application xmlns="http://AOR-AppML.org" name="SoRiN"><ObjectType name="ObjectTypeName"/><Enumeration name="EnumerationName"/></Application>
Firefox 控制台输出(注意 xmlns=""):
<Application xmlns="http://AOR-AppML.org" name="SoRiN"><ObjectType xmlns="" name="ObjectTypeName"/><Enumeration xmlns="" name="EnumerationName"/></Application>
我不想生成那个空的命名空间。我读过这个命名空间表明相应的元素没有默认命名空间(http://www.w3.org/TR/xml-names/#defaulting),但实际上我希望它们与Application在同一个命名空间中。
有什么方法可以防止在 Firefox 中生成命名空间?
附: - 是的,我已经听从了这篇文章的建议 -> How to prevent the namespace generation?
更新
Here 是个小玩意儿。
【问题讨论】:
-
如何创建附加到新文档的元素?根据规范,您引用的问题中给出的答案是错误的,因为方法
document.createElement确实将命名空间URI 设置为空的(w3.org/TR/DOM-Level-3-Core/core.html#ID-2141741547)。 -
我按照该问题的答案中的建议创建元素......我还有哪些其他选择?
-
我添加了一个指向小提琴的链接。
标签: javascript xml firefox dom xml-serialization