【发布时间】:2010-12-10 06:36:56
【问题描述】:
每当我调用xml.setNamespace(ns) 时,元素的命名空间都会设置为ns,但ns 也会作为另一个命名空间添加到元素中,并带有它自己的前缀。我想知道如何阻止后者发生(我可以修改XML.prototype.function::setNamespace)而不定义@xmlns,因为我不能使用E4X 语法。或者,一个不使用 E4X @attribute 语法的 XML.prototype.function::setAttribute(当然除了使用 function:: 来定义它)会更好。
例子:
var xhtml = new Namespace("http://www.w3.org/1999/xhtml"),
xml = <foo/>;
xml.setNamespace(xhtml);
// what I get:
xml.toXMLString() ===
<foo
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
/>.toXMLString();
// what I want:
xml.toXMLString() ===
<foo
xmlns="http://www.w3.org/1999/xhtml"
/>.toXMLString();
【问题讨论】:
标签: javascript xml namespaces e4x