如何防止jQuery在XML对象中插入'xmlns'属性?

jak*_*ake 10 html javascript xml jquery

我一直在使用$.parseXML()jQuery 1.5 的新方法.每当我将新元素插入XML对象时,该新元素将自动获取值为"http://www.w3.org/1999/xhtml"的"xmlns"属性.例如,请参阅下面的代码段:

var myXml = "<one attr='a'><two attr='b'/><three attr='c'><four attr='d'/></three></one>";
myXml = $.parseXML(myXml);
$(myXml).find('three').append($('<five>some value</five>'));
Run Code Online (Sandbox Code Playgroud)

代码创建以下元素:

<five xmlns="http://www.w3.org/1999/xhtml">some value</five>
Run Code Online (Sandbox Code Playgroud)

如何防止jQuery插入'xmlns'属性?我已经尝试过使用这种.removeAttr()方法,但即使这样也没有用.有任何想法吗?

更新:用户nrabinowitz提供的建议有助于解决此问题.将xlmns属性添加到顶级元素确实会阻止xlmns属性自动分配给每个新元素.不过,我为我的特定节目选择了另一种解决方案..replace()在我将XML对象转换回字符串(显示在网页上)之后,我改为使用该方法删除所有xlmns属性.

Sha*_*gir 5

尝试使用

$(myXml).find('three').append('<five>some value</five>');
Run Code Online (Sandbox Code Playgroud)