Dom4j 基本用法
<persons>
<person>
<name>小明<name>
<age>11</age>
</person>
</perons>
element.element("person") : 返回该元素下的第一个person元素
element.elements(); 返回该元素下的所有子元素。
1. 创建SaxReader对象
2. 指定解析的xml
3. 获取根元素。
4. 根据根元素获取子元素或者下面的子孙元素
try {
//1. 创建sax读取对象
SAXReader reader = new SAXReader();
//2. 指定解析的xml源
Document document = reader.read(new File("src/xml/person.xml"));
//3. 得到元素、
//得到根元素
Element rootElement= document.getRootElement();
//获取根元素下面的子元素 age
//rootElement.element("age")
//System.out.println(rootElement.element("person").element("age").getText());
//获取根元素下面的所有子元素 。 stu元素
List<Element> elements = rootElement.elements();
//遍历所有的stu元素
for (Element element : elements) {
//获取stu元素下面的name元素
String name = element.element("name").getText();
String age = element.element("age").getText();
System.out.println("name="+name+"==age+"+age);
} catch (Exception e) {
e.printStackTrace();
}
Xpath
xpath是xml的路径语言,支持我们在解析xml的时候,能够快速的定位到具体的某一个元素
1. 添加jar包依赖
jaxen-1.1-beta-6.jar
2. 在查找指定节点的时候,根据XPath语法规则来查找
3. 后续的代码与以前的解析代码一样。
//要想使用Xpath, 还得添加支持的jar 获取的是第一个 只返回一个。
Element nameElement = (Element) rootElement.selectSingleNode("//name");
System.out.println(nameElement.getText());
//获取文档里面的所有name元素
List<Element> list = rootElement.selectNodes("//name");
for (Element element : list) {
System.out.println(element.getText());
}