Dom4j是一个简单,灵活的开放源代码库的工具
Dom4j中,获得Document对象的三种方式:
1,读取xml文件,或得document对象
SAXReader reader=new SAXReader(); Document doc=reader.read("xml文档");
2,解析xml形式的文本,得到document对象
String text="<tag></tag>"; Document doc=DocumentHelper.parseText(text);
3,主动创建document对象
Document doc=DocumentHelper.createDocument(); Element root=document.addElement("tag");
节点对象:
1,获取文档的根节点
Element root=doc.getRootElement();
2,取得某个节点的子节点
Element elment=node.element("节点名");
3,取得节点的文字
String text=node.getText();
4,取得某节点下所有名为“书名”的子节点,并进行遍历
//root指的是某节点
List nodes=root.elements("书"); for(Iterator it=nodes.iterator();it.hasNext();) Element e=(Element)it.next();
5,对某节点下的所有子节点进行遍历
//elementIterator()根据某个节点获得当前节点下的所有节点
for(iterator it=root.elementIterator();it.hasNext();){ Element e=(Element)it.next(); }
6,在某节点下添加子节点
Elment childE=newMemberElm.addElement("child");
7,设置节点文字
element.setText("29");
8,删除某节点
父节点.remove(子节点);
节点对象属性
1,获取某节点下的属性
//Attribute接口继承Node node下有(getName(),getText()) Element root=doc.getRootElement(); Attribute attr=root.attribute("属性名");
2,取得属性的文字
String text=attribute.getText();
3, 删除某属性
Attribute attr=root.attribute("属性名"); root.remove(attr);
4,遍历某个节点的所有属性
Element root doc.getRootElement(); for(Iterator it=root.attributeiterator();it.hasNext();){ Attribute attr=(Attribute)it.next(); String text=attr.getText(); }
5,设置某节点的属性和文字
newMemberElm.addAttribute("name","wsdf");
6,设置属性的文字
Attribute attr=root.attribute("name"); attr.setText("sdfag");
将文档写入XML文件
1,文档中全为英文,不设置编码,直接写入的形式
XMLWriter writer=new XMLWriter(new FileWriter("xml文档")); writer.write(doc); writer.close();
2,文档中含有中文,设置编码格式写入的形式
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
文章评论