Заменить узел XML DOM

Метод replaceChild() заменяет указанный узел.

Атрибут nodeValue используется для замены текста в узле текста.

Пример

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

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

Замена элементного узла
В этом примере используется replaceChild() для замены первого узла <book>.
Замена данных в узле текста
В этом примере используется атрибут nodeValue для замены данных в узле текста.

Замена элементного узла

Метод replaceChild() используется для замены узлов.

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

xmlDoc=loadXMLDoc("books.xml");
x = xmlDoc.documentElement;
//Создание элемента book, элемента title и текстового узла
newNode = xmlDoc.createElement("book");
newTitle = xmlDoc.createElement("title");
newText = xmlDoc.createTextNode("Hello World");
//Добавление текстового узла к узлу title
newTitle.appendChild(newText);
//Добавление узла title к узлу book
newNode.appendChild(newTitle);
y = xmlDoc.getElementsByTagName("book")[0];
//Использование этого нового узла для замены первого узла book
x.replaceChild(newNode, y);

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

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

TIY

Замена данных в узле текста

Метод replaceData() используется для замены данных в узле текста.

Метод replaceData имеет три параметра:

  • offset - где начать замену символов. Значение offset начинается с 0
  • length - количество символов, которые нужно заменить
  • string - строка, которую нужно вставить
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,8,"hello");

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

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

TIY

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

Использование атрибута nodeValue упростит замену данных текстового узла.

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

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

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

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

TIY

Вы можете в Изменение узла В этом разделе читайте больше о том, как изменить значение узла.