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获取到idAttribute 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);}}}
