Удаление элементов XML DOM

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

removeAttribute() Метод удаляет указанное свойство.

Удаление элемента узла

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

Когда узел удаляется, все его подузлы также удаляются.

Этот код удалит первый элемент <book> из загруженного xml:

Пример

y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);

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

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

  1. Предположим books.xml был загружен в xmlDoc В
  2. установите переменную y установите узел для удаления
  3. Использование removeChild() Метод удаляет элемент узла из родительского узла

Удалить себя - удалить текущий узел

removeChild() Этот метод единственный способ удалить указанный узел.

Когда вы переходите к узлу, который нужно удалить, вы можете использовать: parentNode и removeChild() Метод для удаления этого узла:

Пример

x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);

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

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

  1. Предположим books.xml был загружен в xmlDoc В
  2. установите переменную y установите узел для удаления
  3. Использование parentNode и removeChild() метод для удаления узла элемента

Удаление узла текста

removeChild() Метод также можно использовать для удаления узла текста:

Пример

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);

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

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

  1. Предположим books.xml был загружен в xmlDoc В
  2. установите переменную x на первый узел элемента title
  3. установите переменную y установите узел для удаления
  4. Использование removeChild() метод для удаления узла из родительского узла

Используйте removeChild() Случаи удаления текста из узла не常见ы. Вместо этого можно использовать атрибут nodeValue. См. следующий раздел.

Удаление узла текста

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

Пример

xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";

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

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

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

Удаление узла атрибута по имени

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

Пример 1

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

x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");

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

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

  1. Предположим books.xml был загружен в xmlDoc В
  2. Использование getElementsByTagName() Для получения узла book
  3. Удаление атрибута "category" из первого элемента book

Пример 2

Цикл для удаления всех атрибутов "category" всех элементов <book>:

for (i = 0; i < xLen; i++) {
    y = x.item(i);
    y.removeAttribute('category');
}

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

Удаление узла атрибута по объекту

removeAttributeNode() Метод удаляет узел атрибута, используя объект Node в качестве параметра.

Ниже приведен код, который удаляет все атрибуты всех элементов <book>:

Пример

x = xmlDoc.getElementsByTagName("book");
for (i = 0; i < x.length; i++) {
    while (x[i].attributes.length > 0) {
        attnode = x[i].attributes[0];
        old_att = x[i].removeAttributeNode(attnode);
    }
}

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

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

  1. Предположим books.xml был загружен в xmlDoc В
  2. Использование getElementsByTagName() Чтобы получить все узлы book
  3. Проверить, есть ли у каждого элемента book атрибут
  4. Удалить атрибут, если он существует в элементе book