首页 > 技术文章 > java基础篇---XML解析(二)

oumyye 2015-01-13 23:08 原文

  XML解析之最流行的方式:DOM4J

dom4j是使用java语言编写的,用于读,写,操作XML的一套组件

dom4j是一个开源的java组件,可从http://sourceforge.net/projects/dom4j/files/下载。其解压后有一个dom4j-1.6.1.jar文件,这个就是需要引入的包,其dom4j的所有的接口都在org.dom4j包中定义,主要接口如下:

XML写入文件:DOM4JWriter.java
package org.lxh.xml.dom4j ;
import java.io.* ;
import org.dom4j.* ;
import org.dom4j.io.* ;
public class DOM4JWriter {
    public static void main(String args[]) throws Exception {
        Document doc = DocumentHelper.createDocument() ;
        Element addresslist = doc.addElement("addresslist") ;    // 现在定义一个根节点
        Element linkman = addresslist.addElement("linkman") ;
        Element name = linkman.addElement("name") ;
        Element email = linkman.addElement("email") ;
        name.setText("偶my耶") ;
        email.setText("email") ;
        OutputFormat format = OutputFormat.createPrettyPrint() ;
        format.setEncoding("UTF_8") ;

        XMLWriter writer = new XMLWriter(new FileOutputStream(new File("e:" + File.separator + "output.xml")),format) ;
        writer.write(doc) ;    // 进行输出
        writer.close() ;
    }
}

dom4j读取文件DOM4JReader.java

package org.lxh.xml.dom4j ;
import java.io.* ;
import java.util.* ;
import org.dom4j.* ;
import org.dom4j.io.* ;
public class DOM4JReader {
    public static void main(String args[]) throws Exception {
        File file = new File("d:" + File.separator + "output.xml") ;
        SAXReader reader = new SAXReader() ;
        Document doc = reader.read(file) ;    

        Element root = doc.getRootElement() ;    

        Iterator iter = root.elementIterator() ;
        while(iter.hasNext()){
            Element linkman = (Element) iter.next() ;
            System.out.println("姓名:" + linkman.elementText("name")) ;
            System.out.println("emeil:" + linkman.elementText("email")) ;
        }
    }
}

输出结果:

从程序中可以清楚的发现,DOM4J本身是需要使用SAX建立解析器然后通过文档找到根节点,在通过根节点找到每一个节点的内容。

推荐阅读