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

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

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

Пример

Ниже приведен пример использования файла XML books.xml.

Функция loadXMLDoc()Расположен вне JavaScript, используется для загрузки файла XML.

Изменение текстового узла элемента
В этом примере используется свойство nodeValue для изменения значения текстового узла первого элемента <title> в файле "books.xml".
Изменение значения атрибута с помощью setAttribute
В этом примере используется метод setAttribute() для изменения значения атрибута "category" первого элемента <book>.
Изменение значения атрибута с помощью nodeValue
В этом примере используется свойство nodeValue для изменения значения атрибута "category" первого элемента <book>.

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

В DOM每一种成分都是 узел. Узлы элементов не имеют текстового значения.

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

Метод изменения текста элемента заключается в изменении значения этого подузла (текстового узла).

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

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

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

xmlDoc=loadXMLDoc("books.xml");
x = xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue = "Hello World";

Пример объяснения:

  • Используя loadXMLDoc() Измените "books.xml"Загрузите в xmlDoc"
  • Получить текстовый узел первого элемента <title>
  • Изменить значение узла текста этого текстового узла на "Hello World"

TIY

Пройдемся по всем текстовым узлам элементов <title> и изменим их:TIY

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

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

Метод изменения значения атрибута заключается в изменении его текстового значения.

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

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

Метод setAttribute() устанавливает значение существующего атрибута или создает новый атрибут.

Ниже приведен код, изменяющий атрибут category элемента <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("category","child");

Пример объяснения:

  • Используя loadXMLDoc() Измените "books.xml"Загрузите в xmlDoc"
  • Получите первый элемент <book>
  • Измените значение атрибута "category" на "child"

TIY

Пройтись по всем <title> и добавить новый атрибут:TIY

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

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

Атрибут nodeValue можно использовать для изменения значения атрибутного узла:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0]
y=x.getAttributeNode("category");
y.nodeValue="child";

Пример объяснения:

  • Используя loadXMLDoc() Измените "books.xml"Загрузите в xmlDoc"
  • Получите атрибут "category" первого элемента <book>
  • Измените значение атрибута узла на "child"

TIY