XML DOM - Изменение значения узла

Для изменения значения текстового узла используется свойство nodeValue.

При помощи метода setAttribute() можно изменять значение атрибута.

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

В DOM абсолютно все - узлы. Узлы элементов не имеют текстового значения.

Текстовое значение узла элемента хранится в дочернем узле. Этот узел называется текстовым узлом.

Чтобы изменить текстовое значение элемента, необходимо изменить значение текстового узла элемента.

Изменение значения текстового узла

Свойство nodeValue можно использовать для изменения значения текстового узла.

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


xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "новый контент"

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

  1. Предположим, что файл books.xml был загружен в переменную xmlDoc
  2. Получаем первый дочерний узел элемента <title>
  3. Изменяем значение узла на строку "новый контент"

Изменение значения атрибута

В модели DOM атрибуты также являются узлами. Однако, в отличие от узлов элементов, узлы атрибутов имеют текстовые значения.

Чтобы изменить значение атрибута, нужно изменить его текстовое значение.

Это можно сделать с помощью метода setAttribute() или свойства nodeValue узла атрибута.

Измените атрибута с помощью setAttribute()

Метод setAttribute() изменяет значение атрибута.

Если атрибут не существует, создается новый атрибут.

Следующий код изменяет атрибут "category" элемента <book>:


xmlDoc.getElementsByTagName("book")[0].setAttribute("category","food");

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

  1. Предположим, что файл books.xml был загружен в переменную xmlDoc
  2. Получаем первый элемент <book>
  3. Изменяем значение атрибута "category" на "food"

Примечание: Если атрибут не существует, создается новый атрибут (с указанным именем и значением).

Изменение атрибута с помощью nodeValue

Свойство nodeValue содержит значение узла атрибута.

Изменение значения этого свойства изменяет значение атрибута.


xmlDoc.getElementsByTagName("book")[0].getAttributeNode("category").nodeValue = "food";

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

  1. Предположим, что файл books.xml был загружен в переменную xmlDoc
  2. Получаем атрибут "category" первого элемента <book>
  3. Изменяем значение узла атрибута на "food"