XML的解析方式分为四种:1、DOM解析;2、SAX解析;3、JDOM解析;4、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。
针对以下XML文件,接下来我就讲下我用到的DOM4J解析xml
首先用xml 写一个文件
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<web>
<title>java编程思想</title>
<author>埃克尔</author>
<price>80</price>
</web>
<literature>
<title>红楼梦</title>
<author>曹雪芹</author>
<price>100</price>
</literature>
<children>
<title>安徒生童话</title>
<author>安徒生</author>
<price>60</price>
</children>
</bookstore>
----------------------------------------------------------------------------------------------------------------------------------------- >>
----------------------------------------------------------------------------------------------------------------------------------------- >>
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 readXML {
public static void main(String[] args) {
// 创建saxReader对象
SAXReader reader = new SAXReader();
// 通过read方法读取一个文件 转换成Document对象
try {
Document document = reader.read(new File("source/info.xml"));
//获取根节点元素对象
Element root = document.getRootElement();
List node = root.elements();
//获取根节点
Iterator it = node.iterator();
String name = null;
while(it.hasNext()){
Element next = (Element)it.next();
name = next.getName();
System.out.println(name);
//获取根节点下面的元素
Element element = root.element(name);
List nodes = element.elements();
Iterator ss= nodes.iterator();
while(ss.hasNext()){
Element nexts =(Element)ss.next();
//nexts.getText()获取值-------nexts.getName()获取名称
System.out.println(nexts.getName()+"--------"+nexts.getText());
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}