@SuppressWarnings( { "unchecked", "unused" }) public List<Map<String, List<Object>>> readXml() { List<Map<String, List<Object>>> result = new ArrayList<Map<String, List<Object>>>(); SAXBuilder builder = new SAXBuilder(false); try { // 获取类路径的games.xml文件 File file = new File(this.getClass().getResource("").getPath() + "student.xml"); Document doc = builder.build(file); Element element = doc.getRootElement(); List classes = element.getChildren("class"); System.out.println("班级有:" + classes.size()); for (Iterator iterGenre = classes.iterator(); iterGenre.hasNext();) { Map<String, List<Object>> map = new HashMap<String, List<Object>>(); String mapKey = null; List<Object> mapValue = new ArrayList<Object>(); Element classElement = (Element) iterGenre.next(); mapKey = classElement.getAttributeValue("name"); List students = classElement.getChildren("students"); if (null != students && students.size() > 0) { Element studentsElement = (Element) students.get(0); List student = studentsElement.getChildren("student"); System.out.println("班级【"+mapKey+"】的学生有:" + student.size()); for (Iterator iterGame = student.iterator(); iterGame.hasNext();) { Element studentElement = (Element) iterGame.next(); String sName = studentElement.getAttributeValue("name"); String sSex = studentElement.getChildTextTrim("sex"); String sAge = studentElement.getChildTextTrim("age"); String xxx = studentElement.getChildTextTrim("xxx"); System.out.println("----学生信息----"); System.out.println("姓名:" + sName); System.out.println("性别:" + sSex); System.out.println("年龄:" + sAge); System.out.println("xxx:" + (xxx == null ? "空" : null)); String[] studentInfo = new String[3]; mapValue.add(studentInfo); } } result.add(map); } } catch (JDOMException e) { e.printStackTrace(); } return result; } <?xml version="1.0" encoding="UTF-8"?> <root> <class name="3年八班"> <students> <student name="张三"> <sex>男</sex> <age>18</age> </student> </students> </class> <class name="3年6班"> <students> <student name="李四"> <sex>男</sex> <age>18</age> </student> <student name="abc"> <sex>男</sex> <age>18</age> </student> <student name="bddg"> <sex>男</sex> <age>18</age> </student> </students> </class> </root> 打印结果: 班级有:2 班级【3年八班】的学生有:1 ----学生信息---- 姓名:张三 性别:男 年龄:18 xxx:空 班级【3年6班】的学生有:3 ----学生信息---- 姓名:李四 性别:男 年龄:18 xxx:空 ----学生信息---- 姓名:abc 性别:男 年龄:18 xxx:空 ----学生信息---- 姓名:bddg 性别:男 年龄:18 xxx:空