DOM4j中,獲得Document對象的方式有三種:
1.讀取XML文件,獲得document對象????????????
???????????????????SAXReader reader = new SAXReader();
????????????? Document?? document = reader.read(new File("input.xml"));
2.解析XML形式的文本,得到document對象.
?????????????????? String text = "<members></members>";
????????????? Document document = DocumentHelper.parseText(text);
3.主動創建document對象.
????????????????? Document document = DocumentHelper.createDocument();
???????????? //創建根節點
??????????????????Element root = document.addElement("members");
Tip:節點對象
1.獲取文檔的根節點.
??????Element root = document.getRootElement();
2.取得某個節點的子節點.
Element element=node.element(“書名");
3.取得節點的文字
??????String text=node.getText();
4.取得某節點下所有名為“member”的子節點,并進行遍歷.
?List nodes = rootElm.elements("member");
??for (Iterator it = nodes.iterator(); it.hasNext();) {
???? Element elm = (Element) it.next();
????// do something
?}
5.對某節點下的所有子節點進行遍歷.
for(Iterator it=root.elementIterator();it.hasNext();){
???????Element element = (Element) it.next();
???????// do something
????}
6.在某節點下添加子節點.
Element ageElm = newMemberElm.addElement("age");
7.設置節點文字.
?element.setText("29");
8.刪除某節點.
//childElm是待刪除的節點,parentElm是其父節點
parentElm.remove(childElm);
9.添加一個CDATA節點.
Element contentElm = infoElm.addElement("content");
contentElm.addCDATA(diary.getContent());
???????節點對象屬性
1.取得某節點下的某屬性
????Element root=document.getRootElement();????
//屬性名name
?????????Attribute attribute=root.attribute("size");
2.取得屬性的文字
???String text=attribute.getText();
?3.刪除某屬性
?Attribute attribute=root.attribute("size");
?root.remove(attribute);
3.遍歷某節點的所有屬性
???Element root=document.getRootElement();???
??for(Iterator it=root.attributeIterator();it.hasNext();){
?????????Attribute attribute = (Attribute) it.next();
?????????String text=attribute.getText();
?????????System.out.println(text);
????}
4.設置某節點的屬性和文字.
???newMemberElm.addAttribute("name", "sitinspring");
5.設置屬性的文字
??Attribute attribute=root.attribute("name");
???attribute.setText("sitinspring");