zoukankan      html  css  js  c++  java
  • 使用DOM4J解析XML文档

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

  • 相关阅读:
    WPA/WPA2无法暴力破解
    被书本知识所边缘化的软件工程师
    栈和队列
    Oracle update 之部分更新
    SAAS之初体验
    Entity Framework
    ResourceWriter和ResxResourceWriter的區別
    C#中將顏色轉換成網頁16進制顏色代碼
    Javascript功能代码收集(不断更新中...)
    .net1.1转换成更高版本的问题总结
  • 原文地址:https://www.cnblogs.com/xyk1987/p/8329270.html
Copyright © 2011-2022 走看看