1 实体类准备
Student类
package com.example.demo.test.entity;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
public class Student {
private String id;
private String name;
private String age;
@XmlAttribute
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
StudentList 类
package com.example.demo.test.entity;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
public class StudentList {
private List<Student> students;
@XmlElementWrapper(name = "students")
@XmlElement(name = "student")
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
}
2 xml文件准备:项目目录src/main/resources/ 下新建test.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<students>
<student id="s1">
<name>张三</name>
<age>24</age>
</student>
<student id="s2">
<name>张三</name>
<age>24</age>
</student>
</students>
</configuration>
3, 写java代码读取xml文件并输出
package com.example.demo.test;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.xml.bind.JAXB;
import com.example.demo.test.entity.StudentList;
public class TestReadXml {
public static void main(String[] args) {
readXml();
}
private static void readXml() {
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.xml");
try {
BufferedReader bReader = new BufferedReader(new InputStreamReader(is, "UTF8"));
StudentList list = JAXB.unmarshal(bReader, StudentList.class);
list.getStudents().forEach(s ->{
System.out.println(s.getId());
System.out.println(s.getName());
System.out.println(s.getAge());
});
} catch (Exception e) {
e.printStackTrace();
4, 代码运行结果
s1
张三
24
s2
张三
24