每当我调用xml.setNamespace(ns)
时,元素的命名空间都会设置为ns
,但ns
也会添加为另一个命名空间,并带有它自己的元素前缀。我想知道如何在XML.prototype.function::setNamespace
不定义的情况下阻止后者发生(我可以修改),@xmlns
因为我不能使用 E4X 语法。或者,XML.prototype.function::setAttribute
不使用 E4X @attribute 语法(当然除了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();