XML DOM Удалить узлы
Метод removeChild() удаляет указанный узел.
Метод removeAttribute() удаляет указанный атрибут.
Попробуйте сами — примеры
В примерах используется XML-файл books.xml .
В этом примере функция removeChild() используется для удаления первого элемента <book>.
В этом примере метод parentNode и removeChild() используются для удаления текущего элемента <book>.
В этом примере функция removeChild() используется для удаления текстового узла из первого элемента <title>.
В этом примере свойство nodeValue() используется для очистки текстового узла первого элемента <title>.
В этом примере функция removeAttribute() используется для удаления атрибута «категория» из первого элемента <book>.
В этом примере функция removeAttributeNode() используется для удаления всех атрибутов из всех элементов <book>.
Удалить узел элемента
Метод removeChild() удаляет указанный узел.
Когда узел удаляется, все его дочерние узлы также удаляются.
Этот код удалит первый элемент <book> из загруженного xml:
Пример
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
Объяснение примера:
- Предположим, что « books.xml » загружается в xmlDoc.
- Установите переменную y в качестве узла элемента, который необходимо удалить.
- Удалите узел элемента с помощью метода removeChild() из родительского узла.
Удалить себя — удалить текущий узел
Метод removeChild() — единственный способ удалить указанный узел.
Когда вы перешли к узлу, который хотите удалить, можно удалить этот узел, используя свойство parentNode и метод removeChild():
Пример
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
Объяснение примера:
- Предположим, что « books.xml » загружается в xmlDoc.
- Установите переменную y в качестве узла элемента, который необходимо удалить.
- Удалите узел элемента, используя свойство parentNode и метод removeChild().
Удалить текстовый узел
Метод removeChild() также можно использовать для удаления текстового узла:
Пример
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
Объяснение примера:
- Предположим, что « books.xml » загружается в xmlDoc.
- Установите переменную x в качестве первого узла элемента заголовка
- Установите переменную y в качестве текстового узла для удаления
- Удалите узел элемента с помощью метода removeChild() из родительского узла.
Не очень распространено использование removeChild() только для удаления текста из узла. Вместо этого можно использовать свойство nodeValue. См. следующий абзац.
Очистить текстовый узел
Свойство nodeValue можно использовать для изменения значения текстового узла:
Пример
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
Объяснение примера:
- Предположим, что « books.xml » загружается в xmlDoc.
- Получите первый дочерний узел первого элемента заголовка.
- Используйте свойство nodeValue, чтобы очистить текст от текстового узла.
Удаление узла атрибута по имени
Метод removeAttribute( ) удаляет узел атрибута по его имени.
Пример: removeAttribute('категория')
Этот код удаляет атрибут «категория» в первом элементе <book>:
Пример
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
Объяснение примера:
- Предположим, что « books.xml » загружается в xmlDoc.
- Используйте getElementsByTagName() для получения узлов книги
- Удалите атрибут «категория» из первого узла элемента книги.
Прокрутите и удалите атрибут «категория» всех элементов <book>:
Удалить узлы атрибутов по объекту
Метод removeAttributeNode( ) удаляет узел атрибута, используя объект узла в качестве параметра.
Пример: removeAttributeNode(x)
Этот код удаляет все атрибуты всех элементов <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);
}
}
Объяснение примера:
- Предположим, что « books.xml » загружается в xmlDoc.
- Используйте getElementsByTagName(), чтобы получить все узлы книги
- Для каждого элемента книги проверьте, есть ли какие-либо атрибуты
- Пока в элементе книги есть атрибуты, удалите атрибут