当前位置:网站首页>Dom4j traverses and updates XML
Dom4j traverses and updates XML
2022-07-03 08:45:00 【The corner of fufu】
Catalog
One 、Dom4j
1、DOM Document object model
DOM(Document Object Model) Defines access and operations XML Standard approach to documentation ,DOM hold XML The document is viewed as a tree structure , Can pass DOM Tree to read and write all elements .
2、Dom4j
Dom4j It's an easy to use 、 Open source library , For parsing XML, It is used for Java platform .
Dom4j take XML As Document object .
XML The label is Dom4j Defined as Element object .
Two 、Dom4j Traverse XML
xml page
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hr SYSTEM "hr.dtd">
<!-- Human resource management system -->
<hr>
<employee no="3309">
<name> Zhang San </name>
<age>31</age>
<salary>5000</salary>
<department>
<dname> The administration department </dname>
<address>xx building -B103</address>
</department>
</employee>
<employee no="3310">
<name> Li Si </name>
<age>29</age>
<salary>8000</salary>
<department>
<dname> Technology Department </dname>
<address>xx building -B104</address>
</department>
</employee>
</hr>
java page
package com.imooc.dom4j;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class HrReader{
public void readXml() {
String file="d:/workplace/xml/src/hr.xml";
// SAXReader Class is read XML Core classes of files , Is used to XML Resolve to “ Trees ” Form preservation of
SAXReader reader = new SAXReader();
try {
Document document = reader.read(file);
// obtain XML The root node of the document , namely hr label
Element root = document.getRootElement();
// elements Method is used to get the specified set of tags
List<Element> employees = root.elements("employee");
for(Element employee : employees) {
// element Method is used to get the unique child node object
Element name = employee.element("name");
String empName = name.getText();// getText() Method is used to get the label text
System.out.println(empName);
System.out.println(employee.elementText("age"));
System.out.println(employee.elementText("salary"));
Element department = employee.element("department");
System.out.println(department.element("dname").getText());
System.out.println(department.element("address").getText());
Attribute att = employee.attribute("no");
System.out.println(att.getText()+"\n");
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
HrReader reader = new HrReader();
reader.readXml();
}
}
Output page 
3、 ... and 、Dom4j to update XML
java page
package com.imooc.dom4j;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class HrWriter {
public void writeXml() {
String file = "d:/workplace/xml/src/hr.xml";
SAXReader reader = new SAXReader();
try {
Document document = reader.read(file);
Element root = document.getRootElement();
Element employee = root.addElement("employee");
employee.addAttribute("no","3311");
Element name = employee.addElement("name");
name.setText(" Wang Wu ");
employee.addElement("age").setText("24");
employee.addElement("salary").setText("3600");
Element department = employee.addElement("department");
department.addElement("dname").setText(" The personnel department ");
department.addElement("address").setText("XX building -B205");
Writer writer = new OutputStreamWriter(new FileOutputStream(file),"UTF-8");
document.write(writer);
writer.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
HrWriter hrWriter = new HrWriter();
hrWriter.writeXml();
}
}
xml Change the page
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hr SYSTEM "hr.dtd"><!-- Human resource management system -->
<hr>
<employee no="3309">
<name> Zhang San </name>
<age>31</age>
<salary>5000</salary>
<department>
<dname> The administration department </dname>
<address>xx building -B103</address>
</department>
</employee>
<employee no="3310">
<name> Li Si </name>
<age>29</age>
<salary>8000</salary>
<department>
<dname> Technology Department </dname>
<address>xx building -B104</address>
</department>
</employee>
<employee no="3311">
<name> Wang Wu </name>
<age>24</age>
<salary>3600</salary>
<department>
<dname> The personnel department </dname>
<address>XX building -B205</address>
</department>
</employee>
</hr>
边栏推荐
猜你喜欢
![[redis] redis persistent RDB vs AOF (source code)](/img/57/b6a86c49cedee31fc00dc5d1372023.jpg)
[redis] redis persistent RDB vs AOF (source code)

单调栈-84. 柱状图中最大的矩形
![[concurrent programming] explicit lock and AQS](/img/5f/a80751a68726f53d11133810f454a3.jpg)
[concurrent programming] explicit lock and AQS

Constraintlayout's constraintset dynamically modifies constraints

Ue5 opencv plug-in use
![P1596 [USACO10OCT]Lake Counting S](/img/a7/07a84c93ee476788d9443c0add808b.png)
P1596 [USACO10OCT]Lake Counting S

Installation of PHP FPM software +openresty cache construction

Message queue for interprocess communication
![[MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle](/img/b7/7bf2a4a9ab51364352aa5e0a196b6d.jpg)
[MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle

Image processing 8-cnn image classification
随机推荐
Markdown directory generation
Vscode, idea, VIM development tool shortcut keys
OpenGL learning notes
[MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle
Message queue for interprocess communication
【Rust 笔记】10-操作符重载
[concurrent programming] working mechanism and type of thread pool
[concurrent programming] concurrent security
详解sizeof、strlen、指针和数组等组合题
单调栈-42. 接雨水
VIM learning notes from introduction to silk skating
【Rust笔记】05-错误处理
[updating] wechat applet learning notes_ three
Development experience and experience
Redis cluster series 4
Find the intersection of line segments
100 GIS practical application cases (78) - Multi compliance database design and data warehousing
matlab神经网络所有传递函数(激活函数)公式详解
22-06-27 西安 redis(01) 安装redis、redis5种常见数据类型的命令
Intersectionpicker in osgearth