long blogs

进一步有进一步惊喜


  • Home
  • Archive
  • Tags
  •  

© 2025 long

Theme Typography by Makito

Proudly published with Hexo

dom4j-xml解析

Posted at 2019-07-17 笔记 

maven 添加依赖

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>

读取xml文件

1、获得读取文件的对象
SAXReader reader = new SAXReader();
2、读取文件,返回一个Element对象

1
2
String path = "student.xml";
Document doc = reader.read(new File(path));

3、获得根元素

1
2
Element root = doc.getRootElement();
System.out.println(root.getName());

4、获得元素的列表

1
List<ELement> list = root.elements();

相关的函数说明

1、getRootElement
获得Document文件的根元素
2、Element#getName()
获得标签的名称
3、获得指定标签内的值
3.1 方法一
(1)先获得指定标签的element
Element#element(“tag”)->Element;
(2)获得标签内的值
Element#getText()->String
3.2 方法二
ELement#elementText(“tag”)->String
4、获得标签的属性
Element#attribute(“attr”)->Atrribute
4.1 获得属性的的名称
Attribute#getName()->String
4.2 获得属性的值
Atrribute#getValue()->String

写XML

1、新建一个document对象
Document writeDoc = DocumentHelper.createDocument();
2、往文档中添加一个根节点

1
2
// 添加根元素
Element elRoot = writeDoc.addElement("t_user");

3、往这个根元素中添加一些元素

1
2
3
4
5
6
7
8
9
for(int i=0; i < 10;i++){
Element writeRoot = elRoot.addElement("student");
// 添加id标签
Element wIdEle = writeRoot.addElement("id");
// 设置id标签的值
wIdEle.addText("23");
// 添加name标签并设置为李华
writeRoot.addElement("name").addText("李华");
}

4、设置写出xml的格式和编码

1
2
3
4
OutputFormat xmlFormat = OutputFormat.createPrettyPrint();
xmlFormat.setEncoding("UTF-8");
// 是否要写头
// xmlFormat.setSuppressDeclaration(ture);

5、建立写回文件的对象并写回数据

1
2
3
4
5
6
XMLWriter writer = new XMLWriter(xmlFormat);
writer.setOutputStream(new FileOutputStream("output.xml"));
// 将数据写回xml文件
writer.write(writeDoc);
//
writer.close();
完整的文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.List;

/**
* @author 风兮木落
* */
public class SaveXml {
public static void main(String[] args){
try {
// 1.获得读取对象
SAXReader reader = new SAXReader();
String path = "student.xml";
Document doc = reader.read(new File(path));
Element root = doc.getRootElement();
System.out.println(root.getName());
// 2.获得信息
List<Element> list = root.elements();
for (Element item:list){
System.out.println(item.getName());
String id = item.element("id").getText();
String id2 = item.elementText("id");
System.out.println("id="+id);
System.out.println("id="+id2);
System.out.println("code="+item.elementText("code"));
System.out.println("name="+item.elementText("name"));
System.out.println("password="+item.elementText("password"));
System.out.println("sex="+item.elementText("sex"));
}
// 写xml
// 准备数据
Document writeDoc = DocumentHelper.createDocument();
// 添加根元素
Element elRoot = writeDoc.addElement("t_user");
for(int i=0; i < 10;i++){
Element writeRoot = elRoot.addElement("student");
// 添加id标签
Element wIdEle = writeRoot.addElement("id");
// 设置id标签的值
wIdEle.addText("23");
// 添加name标签并设置为李华
writeRoot.addElement("name").addText("李华");
}

// 写出文件
// 设置xml编码
OutputFormat xmlFormat = OutputFormat.createPrettyPrint();
xmlFormat.setEncoding("UTF-8");
// 是否要写头
// xmlFormat.setSuppressDeclaration(ture);
XMLWriter writer = new XMLWriter(xmlFormat);
writer.setOutputStream(new FileOutputStream("output.xml"));
// 将数据写回xml文件
writer.write(writeDoc);
//
writer.close();
}catch (DocumentException e){
e.printStackTrace();
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
}

}
}

Share 

 Previous post: jsp和servlet相关知识 Next post: linux环境配置 

© 2025 long

Theme Typography by Makito

Proudly published with Hexo