Введение в DOM

       

Замена узла


Конечно, не имеет смысла удалять компоненту заказа, если она не выполнена. Вместо этого приложение заменяет ее компонентой backordered.

Вместо removeChild() просто используйте replaceChild(). Заметьте, что в данном случае метод также возвращает старый узел, так что он может быть перенесен, если это необходимо, возможно, в новый Document, перечисляющий невыполненные компоненты.

Заметьте, что поскольку никакое содержимое не было добавлено в элемент, этот элемент является пустым. Пустой элемент не имеет содержимого и может быть записан в сокращенном виде:

<backordered />

Косая черта (/) устраняет необходимость в закрывающем теге (</backordered>).

... if (thisOrderItem.getAttributeNode("instock") .getNodeValue().equals("N")) { Element backElement = doc.createElement("backordered");

Node deadNode = thisOrderItem.getParentNode() .replaceChild ( backElement, thisOrderItem);

} else { ...



Содержание раздела