Я использовал новый $. ParseXML ()
с jQuery 1.5.Когда я вставляю новый элемент в объект XML, этот новый элемент автоматически получает атрибут 'xmlns' со значением "http://www.w3.org/1999/xhtml". Например, см. Фрагмент кода ниже:
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>'));
Код создает следующий элемент:
<five xmlns="http://www.w3.org/1999/xhtml">some value</five>
Как запретить jQuery вставлять атрибут xmlns? Я пробовал использовать .removeAttr ()
, но даже он не работает. Есть идеи?
ОБНОВЛЕНИЕ:
Предложение, предложенное пользователем nrabinowitz, помогло решить эту проблему. Добавление атрибута xlmns к элементу верхнего уровня предотвращает возникновение xlmns атрибута автоматически назначается каждому новому элементу. Тем не менее, я выбрал другое решение для своей конкретной программы. Вместо этого я использовал метод .replace ()
для удалите все атрибуты xlmns после того, как я преобразовал объект XML обратно в строку (для отображения на веб-странице).