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);
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号