Dom4j解析xml文档
原创
©著作权归作者所有:来自51CTO博客作者yxkong的原创作品,请联系作者获取转载授权,否则将追究法律责任
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");
节点对象属性
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