XML DOM Удаление узла


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

Метод removeAttribute() удаляет указанный атрибут.


实例

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

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


В этом примере используется removeChild() для удаления первого элемента <book>.


В этом примере используются parentNode и removeChild() для удаления текущего элемента <book>.


В этом примере используется removeChild() для удаления текстового узла первого элемента <title>.


В этом примере используется свойство nodeValue() для очистки текстового узла первого элемента <title>.


В этом примере используется removeAttribute() для удаления атрибута "category" у первого элемента <book>.


В этом примере используется removeAttributeNode() для удаления всех атрибутов из всех элементов <book>.


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

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

При удалении узла также удаляются все его дочерние узлы.

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

Пример

xmlDoc=loadXMLDoc("books.xml");

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

xmlDoc.documentElement.removeChild(y);

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

Пояснение к примеру:

  1. ИспользованиеloadXMLDoc(): поместите "" и загрузите в xmlDoc
  2. Присвойте переменной y узел элемента, который нужно удалить.
  3. Удалите узел элемента из родительского узла с помощью метода removeChild().

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

Метод removeChild() — единственный метод, который может удалить указанный узел.

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

Пример

xmlDoc=loadXMLDoc("books.xml");

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

x.parentNode.removeChild(x);

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

Пояснение к примеру:

  1. ИспользованиеloadXMLDoc(): поместите "" и загрузите в xmlDoc
  2. Присвойте переменной y узел элемента, который нужно удалить.
  3. Удалите этот узел элемента с помощью свойства parentNode и метода removeChild().

Удаление текстовых узлов

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

Пример

xmlDoc=loadXMLDoc("books.xml");

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

y=x.childNodes[0];
x.removeChild(y);

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

Пояснение к примеру:

  1. ИспользованиеloadXMLDoc(): поместите "" и загрузите в xmlDoc
  2. Присвойте переменной x первый узел элемента title.
  3. Присвойте переменной y текстовый узел, который нужно удалить.
  4. Удалите узел элемента из родительского узла с помощью метода removeChild().

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


Очистка текстовых узлов

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

Пример

xmlDoc=loadXMLDoc("books.xml");

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

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

Пояснение к примеру:

  1. ИспользованиеloadXMLDoc(): поместите "" и загрузите в xmlDoc
  2. Присвойте переменной x текстовый узел первого элемента title.
  3. Используйте свойство nodeValue, чтобы очистить текст текстового узла.

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


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

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

Пример: removeAttribute('category')

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

Пример

xmlDoc=loadXMLDoc("books.xml");

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

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

Пояснение к примеру:

  1. ИспользованиеloadXMLDoc(): поместите "" и загрузите в xmlDoc
  2. Используйте getElementsByTagName() для получения узлов book
  3. Удалите атрибут "category" у первого узла элемента book.

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


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

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

Пример: removeAttributeNode(x)

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

Пример

xmlDoc=loadXMLDoc("books.xml"); 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. ИспользованиеloadXMLDoc(): поместите "" и загрузите в xmlDoc
  2. Используйте getElementsByTagName() для получения всех узлов book.
  3. Проверьте, есть ли у каждого элемента book атрибуты.
  4. Если в элементе book есть атрибут, удалите этот атрибут.

Другие расширения