zoukankan      html  css  js  c++  java
  • 使用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();
    		}
    	}
    }
    

      

  • 相关阅读:
    01快速入门-03-条件判断和循环
    01快速入门-02-数组和对象
    01快速入门-01-基本语法和数据类型
    《Head First 设计模式》[01] 策略模式
    爬山算法与模拟退火算法的分析与实现
    Java虚拟机(二) —— 运行时数据区的OOM异常
    CoreJava(一)—— Java迭代语句
    Java虚拟机(二) —— 垃圾回收算法与垃圾回收器
    算法学习 —— 使用Linux C++练习OJ
    Java虚拟机(一) —— 运行时数据区
  • 原文地址:https://www.cnblogs.com/xyk1987/p/8329942.html
Copyright © 2011-2022 走看看