解析XML并将信息封装到对象中

【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());
        }
    }
    
}
复制代码

【运行结果】

posted @   岁月淡忘了谁  阅读(2270)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示