我寫了這個程序從樹中刪除了一個節點,但它仍然存在!從DOM中刪除一個節點
這是怎麼回事?打印節點內容後,它仍顯示與刪除節點內容相同的內容,這意味着它仍然存在!
代碼:
public class JavaApplication38 {
public static void check(Node node){
if (node == null || node.getNodeName() == null)
return;
check(node.getFirstChild());
System.out.println(node.getNodeValue() != null && node.getNodeValue().trim().length() == 0 ? "" : node);
if ( "abcd".equals(node.getTextContent()))
node.getParentNode().removeChild(node);
check(node.getNextSibling());
}
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
File file = new File("d:\\a.xml");
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);
document.getDocumentElement().normalize();
Node b=document.getFirstChild();
check(b);
check(b);
}
}
等等,Java也有這個愚蠢的'node.parentNode.removeChild(node)'模式? –
@Šime:如果您使用DOM API的Java實現,您當然必須忍受DOM API中的所有缺陷。但是對於XML處理通常有更好的選擇。 – jarnbjo