利用dom4j创建XML和解析XML

Java代码 
package com.ylt.mfz.util; 
 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.Writer; 
import java.util.Iterator; 
 
import org.dom4j.Attribute; 
import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.DocumentHelper; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
import org.dom4j.io.XMLWriter; 
 
public class Dom4jDemo { 
 
    /**
     * 创建xml文件
     * @param fileName
     */ 
    public void createXml(String fileName)  
    {    
        Document document = DocumentHelper.createDocument();  //创建文档   
        Element employees=document.addElement("employees");    
        Element employee=employees.addElement("employee");    
        Element name= employee.addElement("name");   //添加子节点 
        name.setText("ddvip"); //添加Text值;例:<a>abc</a> 
        name.setAttributeValue("sa", "sa"); //添加属性;例:<a item="item"></a> 
        Element sex=employee.addElement("sex");    
        sex.setText("m");    
        Element age=employee.addElement("age");    
        age.setText("29");    
        try {    
            Writer fileWriter=new FileWriter(fileName);    
            XMLWriter xmlWriter=new XMLWriter(fileWriter);    
            xmlWriter.write(document);   //写入文件中 
            xmlWriter.close();   
            } catch (IOException e) {    
                System.out.println(e.getMessage());    
            }    
    }    
     
    /**
     * 读取xml文件
     * @param fileName
     */ 
    public void parserXml(String fileName)  
    {    
        File inputXml=new File(fileName);    
        SAXReader saxReader = new SAXReader();    
        try {    
            Document document = saxReader.read(inputXml);   //把文件读入到文档 
            Element employees=document.getRootElement();   //获取文档根节点 
            //System.out.println(employees); 
            //for(Iterator i = employees.elementIterator(); i.hasNext();){    
                //Element employee = (Element) i.next();   
//              System.out.println(employee); 
//              for(Iterator j = employee.elementIterator(); j.hasNext();){    
//                  Element node=(Element) j.next();    
//                  System.out.println(node.getName()+":"+node.getText()+":"); 
//                  for(Iterator m = node.attributeIterator();m.hasNext();) 
//                  {                
//                      Attribute item = (Attribute)m.next(); 
//                      System.out.println(item.getName()+","+item.getValue()); 
//                  } 
//              }    
                this.doublexml(employees); 
            //}    
        } catch (DocumentException e) {    
            System.out.println(e.getMessage());    
        }    
            System.out.println("dom4j parserXml");    
    }    
     
     //递归
    private void doublexml(Element ele) 
    { 
        for(Iterator i = ele.elementIterator();i.hasNext();) 
        { 
            Element node = (Element)i.next(); 
            System.out.println("节点名:"+node.getName()); 
            if(node.attributes()!=null && node.attributes().size()>0) 
            { 
                for(Iterator j = node.attributeIterator();j.hasNext();) 
                { 
                    Attribute item = (Attribute)j.next(); 
                    System.out.print("属性名:"+item.getName()+"\t属性值:"+item.getValue()+"\n"); 
                } 
            } 
            if(node.getText().length()>0) 
            { 
                System.out.println("节点值:"+node.getText()); 
            } 
            if(node.elementIterator().hasNext()) 
            { 
                this.doublexml(node); 
            } 
        } 
    } 
     
    public static void main(String[] args) { 
        Dom4jDemo demo = new Dom4jDemo(); 
             
        demo.createXml("d:/sa.xml"); 
             
        demo.parserXml("d:/getchannels[1].xml"); 
    } 
} 
<pre name="code" class="java"></pre><pre name="code" class="java"></pre><pre name="code" class="java"></pre> 

作者“jeasonjack”


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值