概述
处理xml-dom4j的简单使用
文章目录
- 处理xml-dom4j的简单使用
- 前言
- xml
- 导入依赖
- 生成xml文件
- 结果
- 读取xml文件
- 结果
- 小结
前言
我们在日常使用中,我们知道前后端大多通过json文件进行交互,我们做配置文件通过xml或者json,可以看见这些格式的文件我们广泛运用,那相应的我们要会对这些文件进行解析处理,或者直接转换文件格式,上手使用,这里我们就简单了解下xml和json格式文件的使用;
xml
XML 指可扩展标记语言(eXtensible Markup Language)。
不管是xml还是json都是为了方便存储和传输,进行的一些格式化的格式;
导入依赖
<!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.3</version>
</dependency>
不通过maven,这里依赖jar包,百度网盘链接:
链接:https://pan.baidu.com/s/1XH22FXPFY54hpamAvB2pcA?pwd=kp45
提取码:kp45
生成xml文件
两种方法:
1、我们只是靠字符串拼接可以生成xml语句,然后写入文件,这里就不用演示了
2、我们使用dom4j对象创建
这里大家都知道xml文件哈,这里多说无益直接上代码:
一个man对象:
package com.tongxunlu;
/**
* @author 作者 :学习日记
* 类说明: man联系人实体类
*/
public class Man {
private String name;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Man(String name, String phone) {
super();
this.name = name;
this.phone = phone;
}
public Man() {
super();
}
}
main方法测试:
// 产生下数据
List<Man> mans = new ArrayList<Man>();
for (int i = 0; i < 3; i++) {
Man man = new Man("学习日记", "27392189");
mans.add(man);
}
try {
// 第一步:创建一个Document实例
Document doc = DocumentHelper.createDocument();
// 第二步:先添加一个根结点,然后再添加子结点,构造成一个树形结构
Element root = doc.addElement("root");
Element peoples = root.addElement("peoples");
for (Man man : mans) {
// 创建一个个子节点
Element people = peoples.addElement("people").addText("people");
people.addElement("name").addText(man.getName());
people.addElement("phone").addText(man.getPhone());
//addElement("节点标签").addText("标签里的内容")
}
//这里产生带有属性的,但是这个很鸡肋,因为我们知道
//<man><name></name><age></age></man>
//像这样一个人的属性都可以这样写在man闭合标签里,就是man的属性,但是xml又有了属性这个概念
//我们可以完全不使用这样的内属性标签,反而还影响结构,当然了学就都学
for (Man man : mans) {
Element pElement = peoples.addElement("people");
pElement.addAttribute("name", man.getName());
pElement.addAttribute("phone", man.getPhone()).addText("内容");
}
// 第三步:添加xml文件样式(也可自定义样式),并输出xml文件到指定的路径下
// 这里使用默认样式
OutputFormat format = OutputFormat.createPrettyPrint();
// 设置编码格式
format.setEncoding("UTF-8");
// 使用XMLWriter通过流写入到test.xml文件
XMLWriter writer = new XMLWriter(new FileOutputStream(new File("test.xml")), format);
writer.write(doc);
System.out.println("文件产生成功");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
结果
我们可以看到文件生成成功
<?xml version="1.0" encoding="UTF-8"?>
<root>
<peoples>
<people>people
<name>学习日记</name>
<phone>27392189</phone>
</people>
<people>people
<name>学习日记</name>
<phone>27392189</phone>
</people>
<people>people
<name>学习日记</name>
<phone>27392189</phone>
</people>
<people name="学习日记" phone="27392189">内容</people>
<people name="学习日记" phone="27392189">内容</people>
<people name="学习日记" phone="27392189">内容</people>
</peoples>
</root>
读取xml文件
main方法测试:
List mans = new ArrayList();
// 第一步:创建一个SAXReader解析器 List mans=new ArrayList();
SAXReader reader = new SAXReader();
List<Man> mans = new ArrayList<Man>();
// 第一步:创建一个SAXReader解析器 List<Man> mans=new ArrayList<Man>();
SAXReader reader = new SAXReader();
// 第二步:解析xml文件,重新构建成一个Document对象
try {
Document doc = reader.read(new File("test.xml"));
// 第三步:处理Document对象信息,在控制台打印
// 1.获取文档的根节点.
Element root = doc.getRootElement(); // 2.取得某个节点的子节点.
Element peoples = root.element("peoples");
// Element people = peoples.element("people");
Iterator it = peoples.elementIterator();
while (it.hasNext()) {
Element people = (Element) it.next();
Man man = new Man();
if (people.element("name")!=null) {
man.setName(people.element("name").getText());
man.setPhone(people.element("phone").getText());
}else {
man.setName(people.attributeValue("name"));
man.setPhone(people.attributeValue("phone"));
}
mans.add(man);
}
System.out.println("姓名" + "t" + "t" + "电话");
for (Man man : mans) {
System.out.println(man.getName() + "t" + "t" + man.getPhone());
}
} catch (Exception e) {
e.printStackTrace();
}
结果
其实还有很多方法,大家可以去看源码,这里推荐大家去看源码其实都是对字符串的封装对象,如果不用它这个,我们自己写util也可以实现,比方说我们怎么知道里面都有什么方法呢,点进去源码,一看就知道了,这么多方法,我这里只是使用了基本的且常用的,大家多读源码,看了别人的源码对自己会有很大提升的:
小结
这里推荐大家去阅读这些工具类的源码,本身就是拼接封装,很简单可以好理解,比起框架源码还是比较简单的,首先阅读这些工具类源码还是比较简单的,最后,希望大家可以有所收获,那点个赞吧!
最后
以上就是感动羊为你收集整理的处理XML,dom4j的简单使用处理xml-dom4j的简单使用小结的全部内容,希望文章能够帮你解决处理XML,dom4j的简单使用处理xml-dom4j的简单使用小结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复