xml解析dom4j
在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) //设置创建时候的编码
作者:qq1761310972
补充:Web开发 , 其他 ,