1、SAXReader():创建解析器对象
2、利用解析器读取文件到内存 s=解析器对象.read()
3、获取跟根标签 getRootElement() s.getRootElement()
4、通过跟标签获取所有对象标签: 跟标签对象.elements(“参数”),参数可以指定获取对应名字对象信息标签,返回一个list
5、由于对象标签有多个,循环对象标签,通过对象标签.attribute(“id”),可以获取对象标签id属性,通过id对象.getValue()获取这个id的属性值。
6、通过对象列表中每个对象标签.element(“name”),获取到每个属性标签,通过属性标签.getText()获取到值
demo:
xml:
<?xml version="1.0" encoding="UTF-8" ?>
<students>
<!-- 第一个学生信息-->
<student id="1">
<name>张三</name>
<age>23</age>
<info>学生<>的信息</info>
<message><![CDATA[内容 <<<<< >>>>>]}]]></message>
</student>
<!-- 第一个学生信息-->
<student id="2">
<name>李四</name>
<age>24</age>
</student>
<aaa></aaa>
</students>
public class XmlParse {
public static void main(String[] args) throws DocumentException {
// 实例化saxReader对象
SAXReader saxReader = new SAXReader();
// 通过saxReader对象读取文件加载到内存
Document document = saxReader.read(new File("mStudentManager\\xml\\student.xml"));
// 通过document对象获取根路径<students>
Element rootElement = document.getRootElement();
// 使用根路径获取到所有的student对象放入list中
List<Element> studentElement = rootElement.elements("student");
// 创建arraylist用于后面存放student对象
ArrayList<Student> list = new ArrayList<>();
for (Element element : studentElement) {
// 取出studentElementlist中每个元素
// 使用attribute获取到id
Attribute idkey = element.attribute("id");
// 根据idkey使用getValue获取id值
String id = idkey.getValue获取id值();
// 使用element.element("name")获取到name标签
Element nameElement = element.element("name");
// 使用getText获取name标签值
String name = nameElement.getText();
Element ageElement = element.element("age");
String age = ageElement.getText();
// 实例化student对象并添加到list中
Student student = new Student(id,name,Integer.parseInt(age));
list.add(student);
}
// 循环打印list中对象信息
for (Student student : list) {
System.out.println(student);
}
}
}