使用JAVA的Dom4j读取和写出xml文件
博主的公司中开发的是一套多个系统集成开发出来的一套系统,其中系统与系统之间的数据传输方式使用的是xml文件,在这过程中需要大量的对xml文件进行处理,总结一下使用的经验,在这里使用的是dom4j的java jar包
首先需要往项目中引入jar包:dom4j-1.6.1.jar 版本什么的随便,网上都可以下载
从xml文件中获取数据
1.首先手写一个xml文件,我在桌面上创建一个user的xml文件
<users>
<user id="id">
<id>0</id>
<name>张三</name>
<age>20</age>
<Email>111111111@qq.com</Email>
</user>
<user>
<id>1</id>
<name>李四</name>
<age>21</age>
<Email>222222222@qq.com</Email>
</user>
<user>
<id>2</id>
<name>王五</name>
<age>22</age>
<Email>333333333@qq.com</Email>
</user>
</users>
2.建立一个user实体类
public class User {
private Integer id;
private String name;
private Integer age;
private String Email;
User(Integer id,String name,Integer age,String Email){
this.id = id;
this.name = name;
this.age = age;
this.Email = Email;
}
User(){
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", Email='" + Email + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
}
3.建立一个读取user.xml文件的测试方法
public class Testmain {
public static void main(String[] args){
SAXReader reader = new SAXReader();//创建一个SAXReader对象,用于读取xml文件中的数据
try {
Document doc = reader.read(new File("C:\\Users\\dj\\Desktop\\Users.xml"));//创建一个document对象,使用SAEeader对象的read方法读取文件
Element ele = doc.getRootElement();//获取根节点
List<Element> list = ele.elements("user");//根节点下含有多个user对象,所以使用集合接收文件内容
List<User> userList = new ArrayList<>();
for (Element e: list) {//使用循环方法读取数据,然后将获取到的数据赋值给user对象
User u = new User();
u.setId(Integer.valueOf(e.elementText("id")));
u.setName(e.elementText("name"));
u.setAge(Integer.valueOf(e.elementText("age")));
u.setEmail(e.elementText("Email"));
userList.add(u);
}
for(User u:userList){//输出对象
System.out.println(u.toString());
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
输出结果:
通过dom4j写出xml文件
代码块语法遵循标准markdown代码,例如:
public class Testmain2 {
public static void main(String[] args){
Document doc = DocumentHelper.createDocument();//创建一个xml文件对象
Element root = doc.addElement("users");//创建根节点
Element uEle = root.addElement("user");//创建子节点
Element nameEle = uEle.addElement("name");//创建二级子节点
nameEle.setText("张三");//为二级子节点添加文本内容
OutputFormat format = OutputFormat.createCompactFormat();//用于格式化xml内容和设置头部标签
format.setEncoding("utf-8");
Writer out;//创建一个输出流
try {
out = new FileWriter("C:\\Users\\dj\\Desktop\\Users2.xml");
XMLWriter writer = new XMLWriter(out,format);
writer.write(doc);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出结果:
<?xml version="1.0" encoding="utf-8"?>
<users>
<user>
<name>张三</name>
</user>
</users>