Dom4j解析xml文档

2012/03/11 2169点热度 0人点赞 0条评论

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

yxkong

这个人很懒,什么都没留下

文章评论