Как устранить пространство имен по умолчанию при использовании jQuery.appendTo в документе XML - PullRequest
0 голосов
/ 22 ноября 2010

Я использую 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 голосов
/ 25 марта 2015

Вы не можете использовать синтаксис $("<newElem/>") - он создает новый xml dooc из корня, следовательно, 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);
0 голосов
/ 23 ноября 2010

Скорее всего, JQuery не поддерживает, потому что он просто использует createElement, а не createElementNS. В результате он всегда использует пространство имен документа (HTML).

Возможно, вы хотите использовать document.createElementNS напрямую.

...