Вопрос по jquery, xml, javascript – написание файлов XML с помощью jQuery

4

Изменение атрибутов XML с помощью jquery легко, просто:

$(this).attr('name', 'hello');

но как я могу добавить еще один тег в файл? Я попытался с помощью добавить JS умирает молча.

Есть какой-либо способ сделать это

Clarifications: этот код является частью расширения для Firefox, поэтому не беспокойтесь о сохранении в пользовательской файловой системе. Все еще добавление не работает для документов XML, но я могу изменить значения атрибута X

Ваш Ответ

2   ответа
1

Я предлагаю вам пройтись по коду с помощью отладчика и посмотреть, сможете ли вы определить, почему добавление вызывает ошибку (или ошибка в другом месте). Что-то вроде:

$('selector').append('<p></p>');

должно работать просто отлично.

Вы пробовали связанные манипуляторы, такие как prepend () и insertAfter ()?
Я могу подтвердить это умирает молча
ошибки нет, но функция прекращает выполнение. CamelCamelCamel
10

document веб-страницы, поэтому в результате узел не может быть добавлен к другому документу XML. Таким образом, узел должен быть создан в XML-документе.

Вы можете сделать это так

var xml = $('<?xml version="1.0"?><foo><bar></bar><bar></bar></foo>'); // Your xml
var xmlCont = $('<xml>'); // You create a XML container
xmlCont.append(xml); // You append your XML to the Container created in the main document

// Now you can append without problems to you xml
xmlCont.find('foo bar:first').append('<div />');

xmlCont.find('foo bar div'); // Test so you can see it works
@Raybiez относится к IE правильно, однако, начиная с jQuery 1.5, вы должны иметь возможность использовать .parseXML (...) для решения этой проблемы (протестировано):api.jquery.com/jQuery.parseXML
Это хорошо работает в FF & amp; Хром, но IE не очень нравится. Проблема в том, что он не может проанализировать исходную строку XML в первом выражении. Даже если вы обрабатываете специфический для IE синтаксический анализ, завершение XML-документа в объекте jQuery не позволяет добавить его в & lt; xml & gt; узел, как показано выше. "Html" метод также не работает, нужно использовать «innerHTML» и дать ему начальную строку XML в качестве значения. Попытка найти узлы в & lt; XML & gt; узел также не будет работать. Вам нужно будет использовать $ (& quot; foo bar: first & quot ;, xmlDoc), чтобы предоставить некоторый контекст для jQuery.

Похожие вопросы