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

    【运行结果】

  • 相关阅读:
    JS for循环删除数组元素
    InteliJ idea import project 找不到文件结构解决办法
    JSONP 实例
    JSONP 回调给全局变量赋值失败解决
    记用ajax网页跳转大坑——后台执行了,但是没有跳转
    web服务器无法显示font-awesome字体图标
    记 fastjson泛型转对象 第一次可以正常转,第二次就变成JSONArray 问题
    java与mysql时间类型对应的问题
    idea 配置springmvc+mybatis(图文教程)
    (转载)Android学习笔记⑨——android.content.ActivityNotFoundException异常处理
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5895371.html
Copyright © 2011-2022 走看看