xml解析 dom4j

来源:互联网 发布:淘宝卖家跑哪去了 编辑:程序博客网 时间:2024/06/05 03:17
在xml的解析中,dom4j号称效率最高的,很多开源的框架也用dom4j来处理xml的解析。dom4j封装了java原始的解析方式,对数据解析做了很大的优化。


下载地址:
http://sourceforge.net/projects/dom4j/


demo: 
dom4j-1.6.1\src\samples\org\dom4j\samples


解析实例


package demo.dom4j;


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


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


public class Test
{
public static void main(String[] args)
{
try
{
File file = new File("E:/project.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file); 

Element root = doc.getRootElement(); 
 
System.out.println("根节点名称:"+root.getName());
System.out.println("节点名称:  "+"  节点值");
//获根跟节点下的所有子节点
for (Iterator i = root.elementIterator(); i.hasNext();)
{
Element element = (Element) i.next();
System.out.println(element.getName()+": "+element.getText());
}
 
Element reports = root.element("reports");
//获根reports节点下的所有子节点
for (Iterator i = reports.elementIterator(); i.hasNext();)
{
Element element = (Element) i.next();
System.out.println(element.getName()+": "+element.getText());
}
 
 


}
catch (DocumentException e)
{
e.printStackTrace();
}


}


}




异常处理:


org.dom4j.DocumentException: Invalid byte 1 of 1-byte UTF-8 sequence. Nested exception: Invalid byte 1 of 1-byte UTF-8 sequence.
出现异常的原因是因为编码格式问题。dom4j并没有对编码进行处理,只是使用java本来的编码处理方式。


org.dom4j.io.SAXReader.setEncoding(String encoding) //设置解析时候的编码
org.dom4j.io.OutputFormat.setEncoding(String encoding) //设置创建时候的编码

原创粉丝点击