Java中使用DOM4J生成xml文件并解析xml文件的操作

网友投稿 1325 2022-12-09

Java中使用DOM4J生成xml文件并解析xml文件的操作

Java中使用DOM4J生成xml文件并解析xml文件的操作

目录一、前言二、准备依赖三、生成xml文件生成标准展示四、解析xml文件五、总结

一、前言

现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,觉得还是DOM4J用的最多最广泛也最好理解的吧.也是最近需求里遇到了,就来整理一下自己的理解,只适合刚刚学习的,一起理解!今天我们把解析xml文件和生成xml文件在一起来展示.

二、准备依赖

dom4j

dom4j

1.6.1

三、生成xml文件生成标准展示

生成xml代码

/**

* 使用DOM4J生成xml方法

*/

public static void createXml(){

try {

// 创建document对象

Document document = DocumentHelper.createDocument();

// 创建根节点bookRoot

Element StudentRoot = document.addElement("StudentRoot");

// 向根节点中添加第一个节点

Element book1 = StudentRoot.addElement("student");

// 向子节点中添加属性

book1.addAttribute("id","1");

// 向节点中添加子节点

Element name = book1.addElement("name");

// 向子节点赋值

name.setText("小乔");

Element price = book1.addElement("age");

price.setText("18");

// 向根节点中添加第二个节点

Element book2 = StudentRoot.addElement("student");

book2.addAttribute("id","2").addElement("name").setText("大桥");

book2.addElement("age").setText("20");

// 向根节点中添加第三个节点

Element book3 = StudentRoot.addElement("student");

book3.addAttribute("id","3").addElement("name").setText("孙策");

book3.addElement("age").setText("21");

// 设置生成xml的格式

OutputFormat of = OutputFormat.createPrettyPrint();

// 设置编码格式

of.setEncoding("UTF-8");

// 生成xml文件

File file = new File("E:\\student.xml");

if (file.exists()){

file.delete();

}

//创建一个xml文档编辑器

XMLWriter writer = new XMLWriter(new FileOutputStream(file), of);

//把刚刚创建的document放到文档编辑器中

writer.write(document);

writer.close();

} catch (Exception e) {

e.printStackTrace();

}

}

四、解析xml文件

解析xml的文件就是刚刚导出的那个样子,我们展示两种情况,一个是知道属性名字和子元素名字的我们把解析的xml文件数据放到实体类中.不知道的就直接打印到控制台.

实体类展示

import lombok.Data;

@Data

public class Student {

private int id;

private String name;

private int age;

}

解析xml文件方法

public static void analysis(){

// 把要解析的xml变成file文件

File file = new File("E:\\student.xml");

// 获取解析器对象

SAXReader reader = new SAXReader();

// 把文件解析成document树

Document document = null;

try {

document = reader.read(file);

} catch (DocumentException e) {

e.printStackTrace();

}

// 获取根节点

Element studentRoot = document.getRootElement();

// 获取根节点中所有节点

List elements = studentRoot.elements();

// 存放xml中节点的数据集合

List list = new ArrayList<>();

// 便利所有节点

for (Element child : elements) {

Student student = new Student();

//已知属性名情况下

student.setId(Integer.parseInt(child.attributeValue("id")));//获取属性的数据

//已知子元素名的情况下

studhttp://ent.setName(child.elementText("name"));//获取元素中值

student.setAge(Integer.parseInt(child.elementText("age")));//获取元素中值

list.add(student);

//未知属性名情况下

List attributes = child.attributes();

for (Attribute attribute : attributes) {

System.out.println(attribute.getName() + "---> " + attribute.getValue());

}

//未知子元素名情况下

List elementList = child.elements();

for (Element ele : elementList) {

System.out.println(ele.getName()nIROfuZVJt + "--->" + ele.getText());

}

}

//把解析xml出来的数据集合打印

list.forEach(x-> System.out.println(x));

}

解析结果展示

五、总结

这样我们就把DOM4J来生成xml文件和解析xml文件就都操作完成了,有什么问题留言哦!!谢谢大家

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot启动自动终止也不报错的原因及解决
下一篇:一篇文章带你了解java Object根类中关于toString,equals的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~