使用DOM4J解析XML文档1

package XML;
/*
 * 使用DOM4J解析XML文档的大致步骤
 * 1:创建SAXReader
 * 2:使用SAXReader读取XML文档并生成Document对象
 * 这一步DOM4J耗时耗资源的地方,
 * 因为要将XML文档全部读取完毕并以Document对象形式
 * 保存在内存
 * 3:通过Document对象获取根元素
 * 4:重根元素开始按照XML文档结构逐级获取子元素
 * 以达到遍历XML文档数据的目的
 * 
 * 
 */

import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;

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

public class ParseXML {
	public static void main(String[] args) {
		try {
			SAXReader reader =new SAXReader();
			Document doc=reader.read(new FileInputStream("emplist.xml"));
			/*
			 * Document 提供了获取根元素的方法:Element getRootElement()
			 * Elment 的每一个实例拥有表示XML文档中的一个元素
			 * Elment提供了获取其表示的元素的相关信息的方法,常用的:
			 * 
			 * String getName()   获取当前标签的名字
			 * Element elment(String name)   获取当前标签下指定名字的子标签
			 * List elments()  获取当前标签下所有子标签
			 * List elments(String name)  获取当前标签下所有指定名字的同名子标签
			 * String getText()  获取当前标签中间的文本
			 * String elmentText(String name)  获取当前标签下指定名字的子标签中间的文本
			 * e.elmentText(“a”)  等同于 e.elment("a").getText()
			 * Attribyte attribyte(String name) 获取当前标签中指定名字的属性
			 * 
			 */
			Element root =doc.getRootElement();
			List<Element> empList = root.elements("emp");
			/*
			 * 保存所有员工信息的集合
			 * 将所有<EMP>标签保存的员工信息以EMP实例形式存储并存入到list集合中
			 */
			List<Emp> list  =new ArrayList<Emp>();
			for(Element empEle:empList) {
				//获取名字
				int id = Integer.parseInt(empEle.attributeValue("id"));
				String name  =empEle.element("name").getText();
				int age =Integer.parseInt(empEle.elementText("age"));
				String gender=empEle.elementText("gender");
				int salary=Integer.parseInt(empEle.elementText("salary"));
				Emp  emp =new Emp(id,name,age,gender,salary);
				list.add(emp);
				
			}
			System.out.println("解析完毕");
			for(Emp e:list) {
				System.out.println(e);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

  

原文地址:https://www.cnblogs.com/xyk1987/p/8329942.html