XML DOM 2

Рубрика: Язык разметки XML

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

В этом посте я хочу объяснить некоторые другие важные методы XML DOM.


Получение Значения Элемента

XML файл, используемый в примерах ниже: books.xml.

Следующий пример извлекает текстовое значение первого XML элемента <title>:

Пример

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;

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

Получаем Значение Атрибута

Следующий пример извлекает текстовое значение из XML атрибута "lang" первого элемента <title>:

Пример

txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

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

Меняем Значение Элемента

Следующий пример меняет текстовое значение первого элемента <title>:

Пример

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Самогоноварение";

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

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

XML DOM метод setAttribute() может использоваться для изменения значения существующего атрибута или для создания нового атрибута.

Следующий пример добавляет новый атрибут (edition="первое") к каждому элементу <book>:

Пример

x=xmlDoc.getElementsByTagName("book");

for(i=0;i<x.length;i++)
  {
  x[i].setAttribute("edition","первое");
  }

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

Создание Элемента

XML DOM метод createElement() создает новый узел элемента.

XML DOM метод createTextNode() создает новый текстовый узел.

XML DOM метод appendChild() добавляет дочерний узел к узлу (прямо за последним дочерним узлом).

Чтобы создать новый элемент с тектовым содержимым, необходимо во-первых создать новый узел элемента, во-вторых создать новый тектовый узел, а затем прикрепить его к существующему узлу.

Следующий пример создает новый элемент (<edition>), со следующим текстом: “Первое”, и добавляет его к первому элементу <book>:

Пример

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

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

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

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

  • Создаем элемент <edition>
  • Создаем текстовый узел со следующим текстом: “Первое”
  • Присоединяем текстовый узел к новому элементу <edition>
  • Присоединяем элемент <edition> к первому элементу <book>

Удаление Элемента

Следующий пример удаляет первый узел в первом элементе <book>:

Пример

x=xmlDoc.getElementsByTagName("book")[0];
x.removeChild(x.childNodes[0]);

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

Замечание: Результат примера выше может быть разным в зависимости от того, какой браузер Вы используете. Firefox трактует новые строки как пустые текстовые узлы, Internet Explorer – нет. В будущем я планирую написать подробную статью, посвященную XML DOM, в которой в частности хочу описать, как избежать данную проблему.

Спасибо за внимание и до новых встреч на страницах сайта okITgo.ru.

Ваш отзыв