XML DOM Продвинутый уровень


XML DOM - Продвинутый уровень

ВВ предыдущих главах этого руководствамы представили XML DOM и использовали метод getElementsByTagName() XML DOM для извлечения данных из XML-документа.

В этой главе мы рассмотрим некоторые другие важные методы XML DOM.

Вы можете в нашемруководстве по XML DOMузнать больше об XML DOM.


Получить значение элемента

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

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

Пример

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

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


Получить значение атрибута

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

Пример

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

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


Изменить значение элемента

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

Пример

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Cooking";

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


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

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

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

Пример

x=xmlDoc.getElementsByTagName("book");

for(i=0;i<x.length;i++)
{
x[i].setAttribute("edition","first");
}

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


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

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

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

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

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

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

Пример

newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("First");
newel.appendChild(newtext);

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

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

Пояснение примера

  • Создайте элемент <edition>
  • Создайте текстовый узел со значением "First"
  • Добавьте этот текстовый узел к новому элементу <edition>
  • Добавьте элемент <edition> к первому элементу <book>

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

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

Пример

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

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

Примечание:Результат приведённого выше примера может зависеть от используемого браузера. Firefox обрабатывает символы новой строки как пустые текстовые узлы, тогда как Internet Explorer — нет. Вы можете в нашемучебнике по XML DOMпрочитать больше об этой проблеме и о том, как её избежать.

Другие расширения