2010-11-22 95 views
0

我正在使用jQuery将XML元素添加到内存中的XML文档中。如何消除在XML文档中使用jQuery.appendTo时的默认名称空间

var newElem = xmlDoc.find("newElem"); 
if (newElem.length == 0) 
    newElem = $("<newElem/>").appendTo(xmlDoc); 

我最终得到的是:

<newElem xmlns="http://www.w3.org/1999/xhtml"></newElem> 

这个XML被发送到服务器的AJAX调用,并在dom4j的使用默认的命名空间是一种痛苦。有什么办法可以停止添加默认的命名空间吗?

我正在使用Firefox。这可能是一个浏览器的具体事情?

回答

0

这可能是jQuery没有打算支持的东西,因为它只是使用createElement而不是createElementNS。最终效果是它总是使用文档(HTML)名称空间。您可能要直接使用document.createElementNS

+0

原来使用createElement工作得很好。关键是使用它而不是jQuery的内部创建例程 – 2010-11-23 20:16:49

0

不能使用$("<newElem/>")语法 - 它会根据 根目录创建一个新的xml dooc,因此会创建xmlns。

您需要使用非jQuery的纯JavaScript的的createElement()方法:

var el = xmlDoc.createElement(childname); // Create non-jq element 
el = $(el);        // jQuery-ize it 
el.appendTo(xmlDoc);      // Append using jq object 

而且,虽然我在这,如果你追加到这不是一个jQuery的XML节点文件,使用

var el = parent.context.createElement(childname); 
相关问题