Добавление элемента XML DOM
- Предыдущая страница Создание узла DOM
- Следующая страница Клонирование узла DOM
Пример
Ниже приведен пример использования XML файла books.xml.
Функция loadXMLDoc()Расположен во внешнем JavaScript, используется для загрузки XML файлов.
- Добавить узел после последнего подузла.
- В этом примере используется метод appendChild() для добавления подузла к существующему узлу.
- Добавление узла перед указанным подузлом
- В этом примере используется метод insertBefore() для вставки узла перед указанным подузлом.
- Добавление новой атрибуты
- В этом примере используется метод setAttribute() для добавления новой атрибуты.
- Добавление данных в узел текста
- В этом примере используется метод insertData() для вставки данных в существующий узел текста.
Добавление узла - appendChild()
Метод appendChild() добавляет подузел к существующему узлу.
Новый узел будет добавлен (прибавлен) после любого уже существующего подузла.
Примечание:Если положение узла очень важно, пожалуйста, используйте метод insertBefore().
Следующий фрагмент кода создает элемент ( <edition> ) и добавляет его после последнего подузла первого элемента <book>.
xmlDoc=loadXMLDoc("books.xml"); newel = xmlDoc.createElement("edition"); x = xmlDoc.getElementsByTagName("book")[0]; x.appendChild(newel);
Пример объяснения:
- Используя loadXMLDoc() Добавить "books.xmlЗагрузить в xmlDoc
- Создать новый узел <edition>.
- Добавить этот узел к первому элементу <book>.
Цикл и добавление элемента к всем элементам <book>:TIY
Вставка узла - insertBefore()
Метод insertBefore() используется для вставки узла перед указанным подузлом.
Этот метод очень полезен, когда положение добавляемого узла очень важно.
xmlDoc=loadXMLDoc("books.xml"); newNode = xmlDoc.createElement("book"); x = xmlDoc.documentElement; y = xmlDoc.getElementsByTagName("book")[3]; x.insertBefore(newNode, y);
Пример объяснения:
- Используя loadXMLDoc() Добавить "books.xmlЗагрузить в xmlDoc
- Создать новый узел элемента <book>.
- Вставить этот узел перед последним узлом элемента <book>.
Если вторым параметром insertBefore() является null, новый узел будет добавлен после последнего уже существующего подузла.
x.insertBefore(newNode, null); и x.appendChild(newNode); можно добавить новый подузел к x.
Добавление новой атрибуты
Метод addAtribute() не существует.
Если атрибут не существует, то setAttribute() может создать новый атрибут:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('book'); x[0].setAttribute("edition","first");
Пример объяснения:
- Используя loadXMLDoc() Добавить "books.xmlЗагрузить в xmlDoc
- Установить (создать) значение атрибута "edition" первого элемента <book> в "first"
Примечание:Если атрибут уже существует, метод setAttribute() заменяет существующее значение.
Добавление текста к текстовому узлу - insertData()
Метод insertData() вставляет данные в существующий текстовый узел.
Метод insertData() имеет два параметра:
- offset - где начинать вставку символов (начиная с 0)
- string - строка для вставки
Ниже приведен фрагмент кода, который добавляет "Easy" в текстовый узел первого элемента <title> загруженного XML:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.insertData(0,"Hello ");
- Предыдущая страница Создание узла DOM
- Следующая страница Клонирование узла DOM