Создание новых узлов элементов, атрибутивных узлов (метод setAttribute), текстовых узлов, узлов секции CDATA и узлов комментариев

Рубрика: DOM - Объектная Модель Документа

Здравствуйте, уважаемые читатели блога okITgo.ru! Сегодня мы поговорим о способах создания XML узлов в документе с помощью различных методов DOM.


Попробуйте Сами – Примеры

Примеры ниже используют XML файл books.xml.
Функция loadXMLDoc(), описанная во внешнем скрипте JavaScript, используется для загрузки XML файла.

Создание узла элемента
Этот пример использует createElement() для создания нового узла элемента, и appendChild() для добавления его к узлу.

Создание атрибутивного узла с помощью метода createAttribute
Данный пример использует метод createAttribute() для создания нового атрибутивного узла, и setAttributeNode() для вставки его в элемент.

Создание узла атрибута посредством setAttribute
Этот пример использует setAttribute(), чтобы создать новый атрибут для элемента.

Создание текстового узла
Данный пример использует createTextNode() для создания нового текстового узла и appendChild() для добавления его к элементу.

Создание узла секции CDATA
Этот пример использует метод createCDATAsection() для создания узла секции CDATA, а также метод appendChild() для добавления его к элементу.

Создание узла комментария
Данный пример использует createComment() для создания узла комментария и appendChild() для добавления его в элемент.


Создание Нового Узла Элемента

Метод createElement() создает новый узел элемента:

Пример

xmlDoc=loadXMLDoc("books.xml");

newel=xmlDoc.createElement("edition");

x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc, используя loadXMLDoc()
  2. Создаем новый узел элемента <edition>
  3. Добавляем узел элемента к первому элементу <book>

Циклический обход и добавление элемента ко всем элементам <book>: Попробуйте сами


Создание Нового Атрибутивного Узла

Метод createAttribute() испольуется для создания нового узла атрибута:

Пример

xmlDoc=loadXMLDoc("books.xml");

newatt=xmlDoc.createAttribute("edition");
newatt.nodeValue="первое";

x=xmlDoc.getElementsByTagName("title");
x[0].setAttributeNode(newatt);

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc посредством loadXMLDoc()
  2. Создаем новый узел атрибута "edition"
  3. Устанавливаем значение атрибутивного узла в "первое"
  4. Добавляем новый атрибутивный узел к первому элементу <title>

Циклический обход всех элементов <title> и добавление нового узла атрибута: Попробуйте сами

Замечание: Если атрибутивный узел уже существует, он заменяется на новый.


Создание Атрибута, Используя setAttribute()

Поскольку метод setAttribute() создает новый атрибут, если атрибут не существует, этот метод можно использовать для создания нового атрибута.

Пример

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName(‘book’);
x[0].setAttribute("edition","первое");

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc с помощью loadXMLDoc()
  2. Устанавливаем (создаем) атрибут "edition", присваивая ему значение "первое", для первого элемента <book>

Циклический обход всех элементов <title> и добавление нового атрибута: Попробуйте сами


Создание Текстового Узла

Метод createTextNode() создает новый текстовый узел:

Пример

xmlDoc=loadXMLDoc("books.xml");

newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("первое");
newel.appendChild(newtext);

x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc, используя loadXMLDoc()
  2. Создаем новый узел элемента <edition>
  3. Создаем новый текстовый узел с текстом "первое"
  4. Добавляем текстовый узел к узлу элемента
  5. Добавляем новый узел элемента к первому элементу <book>

Добавление узла элемента, содержащего текстовый узел, ко всем элементам <book>: Попробуйте сами


Создание Узла Секции CDATA

Метод createCDATASection() создает новый узел секции CDATA.

Пример

xmlDoc=loadXMLDoc("books.xml");

newCDATA=xmlDoc.createCDATASection("Специальное Предложениеr & Продажа Книг");

x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newCDATA);

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc посредством loadXMLDoc()
  2. Создаем новый узел секции CDATA
  3. Добавляем новый узел CDATA к первому элементу <book>

Циклический обход и добавление секции CDATA ко всем элементам <book>: Попробуйте сами


Создание Узла Комментария

Метод createComment() создает новый узел комментария.

Пример

xmlDoc=loadXMLDoc("books.xml");

newComment=xmlDoc.createComment("Пересмотрено в Марте 2008");

x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newComment);

Попробуйте сами »

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc с помощью loadXMLDoc
  2. Создаем новый узел комментария
  3. Добавляем новый узел комментария к первому элементу <book>

Циклический обход и добавление узла комментария ко всем элементам <book>: Попробуйте сами

Благодарю за внимание! До новых встреч на страницах сайта okITgo.ru.