首页 > 其他分享 >DOM4J解析xml代码实现

DOM4J解析xml代码实现

时间:2023-03-17 10:44:59浏览次数:57  
标签:xml String DOM4J age id height 解析 public name

1、DOM4J是第三方提供的工具类,使用前需要导入DOM4J的jar包

下载地址:https://dom4j.github.io

public class Dom4jDemo {

    public static void main(String[] args) throws DocumentException {
        List<Student> stuList = new ArrayList<>();
        // 获取解析器对象
        SAXReader sr = new SAXReader();
        // 利用解析器对象把xml文件加载到内存并返回文档对象
        Document document = sr.read(new File("src\\xml\\student.xml"));
        // 获取文档的根标签
        Element rootElement = document.getRootElement();
        // 获取根标签下的子标签student
        List<Element> studentElements = rootElement.elements("student");
        for (Element studenElement : studentElements) {
            // 获取id这个属性和它的属性值
            Attribute attribute = studenElement.attribute("id");
            String id = attribute.getValue();

            // 获取Student类的属性对应的每个标签以及每个标签的标签体内容
            Element element2 = studenElement.element("name");
            String name = element2.getText();
            Element element3 = studenElement.element("age");
            String age = element3.getText();
            Element element4 = studenElement.element("height");
            String height = element4.getText();

            // 将数据封装到student对象
            Student s = new Student();
            s.setAge(Integer.parseInt(age));
            s.setHeight(Integer.parseInt(height));
            s.setId(id);
            s.setName(name);

            // 将student对象放入集合
            stuList.add(s);
        }

        // 遍历集合
        for (Student stu : stuList) {
            System.out.println(stu);
        }
    }

}
public class Student {

    private String id;
    private String name;
    private int age;
    private int height;

    public Student() {}

    public Student(String id, String name, int age, int height) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.height = height;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age + ", height=" + height + "]";
    }

}
<?xml version="1.0" encoding="UTF-8" ?>
<students>

    <student id="1">
        <name>张三</name>
        <age>20</age>
        <height>180</height>
    </student>

    <student id="2">
        <name>李四</name>
        <age>21</age>
        <height>178</height>
    </student>

</students>

 

标签:xml,String,DOM4J,age,id,height,解析,public,name
From: https://www.cnblogs.com/weiduaini/p/17225751.html

相关文章

  • 爬虫相关 requests高级用法、解析json、ssl认证(了解)、使用代理(重要)、超时设置、
    requests高级用法解析json#发送http请求,返回的数据会有xml格式,也有json格式importrequestsdata={'cname':'','pid':'','keyword':'500','page......
  • DOS头+NT头+节表代码解析
    #include"stdafx.h"#include<malloc.h>#include<windows.h>LPVOIDreadPEFile(LPSTRpeFile)//LPVOID是一个没有类型的指针LPSTR",其相当于char*针{FI......
  • 爬虫,requests高级用法,解析json,ssl认证,使用代理,超时设置,上传文件处理,代理池搭建,爬取
    内容回顾可变类型与不可变类型可变类型:值发生改变,内存地址不变:列表,集合,字典不可变类型:值发生改变,内存地址一定发生改变:字符串,整形,浮点型,布尔,元组常用的魔法方法》某种......
  • towxml支持代码复制功能(支持uni-app)
    uni-app中使用towxml步骤见: https://www.cnblogs.com/chuan2021/p/17223663.html 支持代码复制:towxml先用mardown.js把mardown转换成html,然后再解析html,最后渲......
  • 四、PasswordEncoder密码解析器详解
    ​ SpringSecurity要求容器中必须有PasswordEncoder实例。所以当自定义登录逻辑时要求必须给容器注入PaswordEncoder的bean对象1.接口介绍​encode():把参数按照特定......
  • 四、PasswordEncoder密码解析器详解
    ​ SpringSecurity要求容器中必须有PasswordEncoder实例。所以当自定义登录逻辑时要求必须给容器注入PaswordEncoder的bean对象1.接口介绍​encode():把参数按照特定......
  • Fabric配置块结构解析
    本文是区块链浏览器系列的第二篇。上一篇介绍了交易块中的数据结构,这一篇介绍区块链网络中的配置块数据结构。这两种区块中数据结构内容的区别主要Payload结构体中的Data......
  • Libcsv库解析csv格式文件
    一、问题引入数据通信和数据存储的格式是多种多样的,不同的人会选择不同的数据格式,这就涉及数据格式的转换。csv格式的文件在数据通信和存储使用较多,有必要记录一下csv格......
  • Maven POM.xml 标签详解
    pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其......
  • Spring-事件监听 源码解析
    当我们的系统运行在一定的关键节点的时候,它会通过广播器发布一些事件出去;而我们系统中存在着部分监听器,它对某些关键节点的事件是感兴趣的,所以它会去订阅这部分消息;当这些......