premier_gu 发表于 2013-2-1 12:12:17

dom4j读写xml

dom4j生成xml与解析xml
1、解析xml

<?xml version="1.0" encoding="gbk"?>
<a>
<user id="1">
<name>jack</name>
<age>23</age>
</user>

<user id="2">
<name>lucy</name>
<age>22</age>
</user>
</a>

------------------------------------------------------------------------------------

import java.io.File;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class MyXMLReader {   
   
    public static void main(String[] arge) {   
      
             try {
                SAXReader reader=new SAXReader();
   Document doc=reader.read(new File("c://test2.xml"));
         Element root= doc.getRootElement();
         Iterator iterator=root.elementIterator("user");
         while(iterator.hasNext()){
         Element user=(Element)iterator.next();
         String id=user.attributeValue("id");
         System.out.println("id号码:"+id);
         String name=user.elementText("name");
         System.out.println("用户名字:"+name);
         String age=user.elementText("age");
         System.out.println("年龄:"+age);
         }
    } catch (Exception e) {
   e.printStackTrace();
    }

            }
}
==========================================================

2、生成xml文档与修改xml文档

import java.io.FileWriter;
import java.io.Writer;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;


public class Dom4JXML {
public void createXML(){
   Document doc=DocumentHelper.createDocument();
   Element rootEle=doc.addElement("emps");
   rootEle.addComment("这是一个dom4j生成的XML文件");
   Element empEle=rootEle.addElement("emp");
   empEle.addAttribute("id", "1");
   Element nameEle=empEle.addElement("name");
   nameEle.setText("jack");
   Element sexEle=empEle.addElement("sex");
   sexEle.addText("man");
   try{
    Writer out=new FileWriter("c://emps.xml");
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setIndent(true);   
    format.setNewlines(true);   //设置换行
    format.setEncoding("GBK");
             XMLWriter writer=new XMLWriter(out,format);
             writer.write(doc);
             writer.close();
             System.out.println("生成的emps.xml成功。");
   }catch(Exception e){
    e.printStackTrace();
   }
}

         public void updateXML(){
         
         try {
          SAXReader reader= new SAXReader();
    Document doc=reader.read("c://emps.xml");
    List listId=doc.selectNodes("//emps//emp//@id");
    Iterator idIterator=listId.iterator();
    while(idIterator.hasNext()){
   Attribute attribute=(Attribute)idIterator.next();
   attribute.setValue("001");
    }
   List listName=doc.selectNodes("//emps//emp//name");
   Iterator nameIterator=listName.iterator();
   while(nameIterator.hasNext()){
    Element eleName= (Element)nameIterator.next();
    eleName.setText("张三");
   }
   
   List listSex=doc.selectNodes("//emps//emp");
   Iterator sexIterator=listSex.iterator();
   while(sexIterator.hasNext()){
                   Element eleSex=(Element)sexIterator.next();
                  Iterator ite=eleSex.elementIterator("sex");
                     while(ite.hasNext()){
                  Element sexEle=(Element)ite.next();
                  eleSex.remove(sexEle);
                  
                     }
   }
   Writer out=new FileWriter("c://emps(update).xml");
   OutputFormat format = OutputFormat.createPrettyPrint();
   format.setEncoding("GBK");
            XMLWriter writer=new XMLWriter(out,format);
            writer.write(doc);
            writer.close();
            System.out.println("生成的emps(update).xml成功。");
   
      } catch (Exception e) {
   
    e.printStackTrace();
   }
         }
         public static void main(String[] args){
               Dom4JXML dom4jxml=new Dom4JXML();
                     dom4jxml.createXML();
                      dom4jxml.updateXML();
         }



}
页: [1]
查看完整版本: dom4j读写xml