Добавление узла DOM XML

Добавить узел - appendChild()

appendChild() Метод добавляет подузел к существующему узлу.

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

Внимание:Если положение узла важно, используйте insertBefore().

Следующий фрагмент кода создает элемент (<edition>) и добавляет его после последнего подэлемента первого элемента <book>.

пример 1

newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

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

Пример的解释:

  1. Предположим books.xml уже загружен в xmlDoc
  2. Создать новый узел <edition>
  3. Добавить узел к первому элементу <book>.

Данное фрагмент кода выполняет ту же функцию, что и выше, но добавляет новый элемент с значением:

пример 2

newEle = xmlDoc.createElement("edition");
newText = xmlDoc.createTextNode("первый выпуск");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

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

Пример的解释:

  1. Предположим books.xml уже загружен в xmlDoc
  2. Создать новый узел <edition>
  3. Создать новый текстовый узел "первое издание"
  4. Добавить этот текстовый узел к узлу <edition>.
  5. Добавить узел <edition> к элементу <book>.

Вставка узла - insertBefore()

insertBefore() Метод вставляет узел перед указанным подузлом.

Если положение добавляемого узла важно, этот метод очень полезен:

Пример

newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

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

Пример的解释:

  1. Предположим books.xml уже загружен в xmlDoc
  2. Создать новый элемент <book>.
  3. Вставить этот новый узел перед последним узлом <book>.
  4. Если вторым параметром insertBefore() является null, то новый узел будет добавлен после последнего существующего подузла.

x.insertBefore(newNode,null) и x.appendChild(newNode) можно добавить новые подузлы к x.

Добавление нового атрибута

setAttribute() метод устанавливает значение атрибута.

Если атрибут не существует, то setAttribute() можно создать новый атрибут:

Пример

xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","первое издание");

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

Пример的解释:

  1. Предположим books.xml загружен в xmlDoc
  2. Установить значение атрибута "edition" первого элемента <book> в "первое издание"

Внимание:Метода addAttribute() не существует. Если атрибут не существует, setAttribute() создаст новый атрибут. Если атрибут уже существует, метод setAttribute() перезапишет текущее значение.

Добавление текста к текстовому узлу - insertData()

insertData() Метод вставляет данные в существующий текстовый узел.

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

  • offset - С哪里开始插入字符(从 0 开始)
  • string - строка для вставки

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

Пример

xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Мой любимый");

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