在XML文档上使用jQuery.appendTo时如何消除默认命名空间

时间:2010-11-22 20:29:55

标签: jquery xml-namespaces

我正在使用jQuery将XML元素添加到内存中的XML文档中。

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。这可能是浏览器特定的事情吗?

2 个答案:

答案 0 :(得分:0)

jQuery可能不会支持,因为它只使用createElement,而不是createElementNS。最终结果是它始终使用文档(HTML)命名空间。

您可能希望直接使用document.createElementNS

答案 1 :(得分:0)

您无法使用$("<newElem/>")语法 - 从中​​创建新的xml dooc root,因此是xmlns。

您需要使用非jQuery plain-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);