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(); } }}