Замена элементов DOM XML

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

nodeValue Атрибут заменяет текст текстового узла.

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

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

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

Пример

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

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

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

  1. Пример: books.xml загружен в xmlDoc в
  2. Создать новый элемент <book>
  3. Создать новый элемент <title>
  4. Создать новый текстовый узел, содержащий текст "Новая книга"
  5. Добавить этот новый текстовый узел к новому элементу <title>
  6. Добавить этот новый элемент <title> к новому элементу <book>
  7. Заменить первый элемент <book> новым элементом <book>

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

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

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

  • offset - Откуда начать замену символов. Отсчет начинается с нуля
  • length - Количество символов для замены
  • string - Строка для вставки

Пример

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,4,"Новая книга");

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

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

  1. Пример: books.xml загружен в xmlDoc в
  2. Получение текстового узла первого элемента <title>
  3. Использование replaceData() Метод заменяет первые восемь символов текстового узла на "Новая книга"

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

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

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

Пример

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Новая книга";

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

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

  1. Пример: books.xml загружен в xmlDoc в
  2. Получение текстового узла первого элемента <title>
  3. Использование nodeValue Атрибуты для изменения текста узла

Вы можете прочитать больше о изменении значений узлов в главе "Изменение узлов".