1. 程式人生 > >java之xml檔案中刪除節點

java之xml檔案中刪除節點

1 java讀取xml格式的字串。通過dom4j來讀取。通過StringReader來。
如:String xmlString="<root id=\"aaaa\"><aa><a1>a1</a1><a2>a2</a2></aa><bb>bbb</bb></root>";
SAXReader saxReader=new SAXReader();
Document document=saxReader.read(new StringReader(xmlString));//通過StringReader來讀取。將String轉化為流


2 解析完xml格式的字串之後。通過element(String  name)可以得到該節點。只能得到當前節點的子節點。不能得到當前節點的子節點的子節點
如:String xmlString="<root id=\"aaaa\"><aa><a1>a1</a1><a2>a2</a2></aa><bb>bbb</bb></root>";
SAXReader saxReader=new SAXReader();
Document document=saxReader.read(new StringReader(xmlString));
Element root=document.getRootElement();
 Element removeElement=root.element("aa");//得到子節點,是區分大小寫的


3 如果想要刪除某個子節點。先得到該子節點。然後再通過remove(Element element)來刪除。引數為Element型別
如:String xmlString="<root id=\"aaaa\"><aa><a1>a1</a1><a2>a2</a2></aa><bb>bbb</bb></root>";
SAXReader saxReader=new SAXReader();
Document document=saxReader.read(new StringReader(xmlString));
Element root=document.getRootElement();
 Element removeElement=root.element("aa");
if(removeElement==null){//判斷是否找到該子節點
root.remove(removeElement);//刪除子節點
}


總結:element(name)得到子節點、remove(Element element) 刪除子節點


完整的例子:
String xmlString="<root id=\"aaaa\"><aa><a1>a1</a1><a2>a2</a2></aa><bb>bbb</bb></root>";
SAXReader saxReader=new SAXReader();
try {
Document document=saxReader.read(new StringReader(xmlString));
Element root=document.getRootElement();
Element removeElement=root.element("aa");

if(removeElement==null){
System.out.println("未找到該節點");
}else{
root.remove(removeElement);
System.out.println("已刪除");
System.out.println(document.asXML());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}