zoukankan      html  css  js  c++  java
  • 05_XML的解析_02_dom4j 解析将信息封装到对象中

    【person.xml】要解析的内容

    <?xml version="1.0" encoding="UTF-8"?>
    <students>
        <student id="88888" phone="15888888888" sex="男">
            <name>张三</name>
            <age>18</age>
            <school>清华</school>
        </student>
        <student id="99999" phone="15999999999" sex="女">
            <name>李四</name>
            <age>28</age>
            <school>北大</school>
        </student>
        <AAAA>
            <aa1>aa111</aa1>
            <aa2>aa222</aa2>
        </AAAA>
        <BBBB></BBBB>
    </students>

    【Student.java】xml信息所要封装的Studnet对象

    package com.Higgin.parse;
    
    public class Student {
        private String id;
        private String phone;
        private String sex;
        private String name;
        private String age;
        private String school;
        
       //忽略get/set方法
        @Override
        public String toString() {
            return "Student [id=" + id + ", phone=" + phone + ", sex=" + sex
                    + ", name=" + name + ", age=" + age + ", school=" + school
                    + "]";
        }
    }

    【DemoStudent.java】将xml信息封装到Student对象

    package com.Higgin.parse;
    
    import java.io.File;
    import java.util.ArrayList;
    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;
    
    //解析person.xml中student数据,持久化到Student对象中
    public class DemoStudent {
        
        
        public static void main(String[] args) throws DocumentException {
            List<Student> list=new ArrayList<>();
            
            //读取xml,封装对象
            SAXReader saxReader =new SAXReader();
            Document doc=saxReader.read(new File("./src/person.xml"));
            
            //读取Iterator标签
            Iterator<Element> it=doc.getRootElement().elementIterator("student");
            while(it.hasNext()){
                Element elem=it.next();
                Student student=new Student();
                student.setId(elem.attributeValue("id"));     //读取属性
                student.setPhone(elem.attributeValue("phone"));
                student.setSex(elem.attributeValue("sex"));
                student.setName(elem.elementText("name"));  //读取文本
                student.setAge(elem.elementText("age"));
                student.setSchool(elem.elementText("school"));
                list.add(student);
            }
            
            for(Student student : list){
                System.out.println(student.toString());
            }
        }
        
    }

    【运行结果】

  • 相关阅读:
    绘制SVG内容到Canvas的HTML5应用
    HT for Web 3D游戏设计设计--汉诺塔(Towers of Hanoi)
    HT for Web自定义3D模型的WebGL应用
    纯Shading Language绘制飞机火焰效果
    纯Shading Language绘制HTML5时钟
    HTML5版的String Avoider小游戏
    基于HT的CSG功能构建HTML5的3D书架
    HTML5 Web 客户端五种离线存储方式汇总
    基于HTML5的Drag and Drop生成图片Base64信息
    HT for Web可视化QuadTree四叉树碰撞检测
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5895371.html
Copyright © 2011-2022 走看看