首先记得引包
package com.mytest;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class MainTest {
public static void main(String[] atgs){
try {
//1.创建SAX读取对象
SAXReader reader = new SAXReader();
//2.指定解析的xml源
Document document = reader.read(new File("src/xml/stus.xml"));
//3.得到元素
Element rootElement = document.getRootElement();
//获得根元素下面的所有子元素
List<Element> elements =rootElement.elements();
for(Element element:elements){
String name = element.element("name").getText();
String age = element.element("age").getText();
String address = element.element("address").getText();
System.out.println("name:"+name+" "+"age:"+age+" "+"address:"+address+" ");
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
解析:
elements是元素的意思,List是列出所有元素。点号可以看出是打开下一层目录,或者是打开其属性。
List elements =rootElement.elements();所以这句话的意思是:根元素下面一层的所有元素都放在elements中。
此时的elements表示两个stu
然后执行循环,循环范围是所有的stu
String name = element.element(“name”).getText();
解析:第一个element代表的是stu,因为有点号,所以指向了下一层。下一层有name,age,address。此处指名了要name。又点号点了一下,要了name元素的属性,得到了name元素的文本
这个是xml文件
<?xml version="1.0" encoding="UTF-8"?>
<stus>
<stu>
<name>张三</name>
<age>18</age>
<address>深圳</address>
</stu>
<stu>
<name>李四</name>
<age>28</age>
<address>北京</address>
</stu>
</stus>
文件目录:
结果:
核心代码出自黑马训练营,不做商用,只供交流和参考学习