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(); 
         } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值