Dom4j是一个简单,灵活的开放源代码库的工具

  Dom4j中,获得Document对象的三种方式:

     1,读取xml文件,或得document对象        

SAXReader reader=new SAXReader();
Document doc=reader.read("xml文档");
String text="<tag></tag>";
Document doc=DocumentHelper.parseText(text);
Document doc=DocumentHelper.createDocument();
Element root=document.addElement("tag");

 节点对象:

   1,获取文档的根节点

Element root=doc.getRootElement();
Element elment=node.element("节点名");
String text=node.getText();


List nodes=root.elements("书");
for(Iterator it=nodes.iterator();it.hasNext();)
Element e=(Element)it.next();


for(iterator it=root.elementIterator();it.hasNext();){
Element e=(Element)it.next();
}
Elment childE=newMemberElm.addElement("child");
element.setText("29");
父节点.remove(子节点);

节点对象属性

   1,获取某节点下的属性  

//Attribute接口继承Node  node下有(getName(),getText())
Element root=doc.getRootElement();
Attribute attr=root.attribute("属性名");
String text=attribute.getText();
Attribute attr=root.attribute("属性名");
root.remove(attr);
Element root doc.getRootElement();
for(Iterator it=root.attributeiterator();it.hasNext();){
Attribute attr=(Attribute)it.next();
String text=attr.getText();
}
newMemberElm.addAttribute("name","wsdf");
Attribute attr=root.attribute("name");
attr.setText("sdfag");

将文档写入XML文件

  1,文档中全为英文,不设置编码,直接写入的形式

XMLWriter writer=new XMLWriter(new FileWriter("xml文档"));
writer.write(doc);
writer.close();
OutputFormat format=OutputFormat.createPrettyPrint();
//指定XML编码
format.setEncoding("GBK");
XMLWriter writer=new XMLWriter(new FileOutputStream("xml文件路径").format);
writer.write(doc);
writer.close();

 Dom4j在指定位置插入节点

      1,得到插入位置的节点列表(list)

      2,调用list.add(index,element),由index决定element的插入位置

        Element 元素可以直接通过DocumentHelper对象得到

Element aa=DocumentHelper.createElement("aa");
aa.setText("sdfa");
List list=root.element("指定的节点").elements();
list.add(1,aa);

      //更新document