解析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()); } } }
【运行结果】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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