Java Hutool工具XML转JavaBean或者Map

1、pom

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.6</version>
</dependency>

2、xml文件

<?xml version="1.0" encoding="utf-8"?>
<data>
    <books>
        <book>
            <title>《许三观卖血记》</title>
            <author>余华</author>
            <publish>作家出版社</publish>
        </book>
        <book>
            <title>《罪与罚》</title>
            <author>陀思妥耶夫斯基</author>
            <publish>浙江文艺出版社</publish>
        </book>
        <book>
            <title>《白夜》</title>
            <author>陀思妥耶夫斯基</author>
            <publish>上海译文出版社</publish>
        </book>
    </books>
</data>

3、类

import cn.hutool.core.annotation.Alias;
import lombok.Data;

import java.io.Serializable;

@Data
public class DataBean implements Serializable {

    /**
     * 数据包
     */
    @Alias("books")
    private BooksBean books;
}
import cn.hutool.core.annotation.Alias;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
public class BooksBean implements Serializable {

    /**
     * 书籍列表
     */
    @Alias("book")
    private List<BookBean> books;
}
import cn.hutool.core.annotation.Alias;
import lombok.Data;

import java.io.Serializable;

@Data
public class BookBean implements Serializable {

    /**
     * 书名
     */
    @Alias("title")
    private String title;

    /**
     * 作者
     */
    @Alias("author")
    private String author;

    /**
     * 出版社
     */
    @Alias("publish")
    private String publish;
}

4、解析

        // 读取xml文件
        String xml = FileUtil.readString(new File("data.xml"), "UTF-8");

        // 将xml转换为java对象
        Element rootElement = XmlUtil.getRootElement(XmlUtil.parseXml(xml));

        // 使用根节点下的直接 转成对象
        DataBean dataBean = XmlUtil.xmlToBean(rootElement, DataBean.class);

        // 输出对象数据
        System.out.println(dataBean.getBooks().getBooks());

 或者spring项目

// 读取xml文件
        File file = ResourceUtils.getFile("classpath:abc.xml");
        String xml = FileUtil.readString(file, "UTF-8");

        // 将xml转换为java对象
        Element rootElement = XmlUtil.getRootElement(XmlUtil.parseXml(xml));

        // 使用根节点下的直接 转成对象
        DataBean dataBean = XmlUtil.xmlToBean(rootElement, DataBean.class);

        // 输出对象数据
        System.out.println(dataBean.getBooks().getBooks());

 转Map

Map<String, Object> map = XmlUtil.xmlToMap(rootElement);
        log.info("{}", map);

 

posted @ 2024-09-23 17:04  都是城市惹的祸  阅读(97)  评论(0)    收藏  举报