p1.xml
<person>
<p1>
<name>zhangsan</name>
<age>30</age>
</p1>
<p1>
<name>lisi</name>
<age>30</age>
</p1>
</person>
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestDom4j {
public static void main(String[] args) throws Exception {
selectName();
}
// 查询xml中所有name的方法
public static void selectName() throws Exception {
/*
* 1、创建解析器
* 2、得到document
* 3、得到根节点
* 4、得到p1
* 5、得到p1下面的name
* 6、得到name里面的值
*
* */
// 创建解析器
SAXReader saxReader = new SAXReader();
// 得到document
Document document = saxReader.read("src/p1.xml");
// 得到根节点
Element root = document.getRootElement();
// 得到p1
List<Element> list = root.elements("p1");
// 遍历list
for (Element element : list) {
// element是每一个p1元素
// 得到p1下面的name元素
Element name1 = element.addElement("name");
// 得到name里面的值
String s = name1.getText();
System.out.println(s);
}
}
}
输出
zhangsan
lisi
//获取到一个name元素里面的值
public static void selectSin() throws Exception{
/*
* 1、创建解析器
* 2、得到document
*
* 3、得到根节点
*
* 4、得到第一个p1元素
* 5、得到p1下面的name元素
* 6、得到name元素里面的值
* */
//创建解析器
SAXReader saxReader = new SAXReader();
//得到document
Document document = saxReader.read("src/day06/p1.xml");
//得到根节点
Element root = document.getRootElement();
//得到第一个p1
Element p1 = root.element("p1");
//得到p1下面的name元素
Element name1 = p1.element("name");
//得到name的值
String s1 = name1.getText();
System.out.println(s1);
}
输出
zhangsan
//获取第二个name元素里面的值
public static void selectSecond() throws Exception{
/*
* 1、创建解析器
* 2、得到document
* 3、得到根节点
*
* 4、得到所有的p1
* 5、遍历得到第二个p1
* 6、得到第二个p1下面的name
* 7、得到name的值
* */
//创建解析器
SAXReader saxReader = new SAXReader();
//得到document
Document document = saxReader.read("src/day06/p1.xml");
//得到根节点
Element root = document.getRootElement();
//得到所有p1
List<Element> list = root.elements("p1");
//得到第二个p1 list集合下标从0开始
Element p2 = list.get(1);
//得到p1下面的name
Element name2 = p2.element("name");
//得到name里面的值
String s2 = name2.getText();
System.out.println(s2);
}
输出
lisi