使用dom4j解析xml
一、下载dom4j.jar包,下载地址:https://dom4j.github.io/
向新建的项目中导入该jar包
二、使用dom4j解析xml
新建demo.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<stus>
<stu>
<name>张三</name>
<age>18</age>
<address>北京</address>
</stu>
<stu>
<name>李四</name>
<age>20</age>
<address>邯郸</address>
</stu>
</stus>
新建类文件MainTest
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.awt.*;
import java.io.File;
import java.util.List;
public class MainTest {
public static void main(String[] args){
try{
//1.创建Sax读取对象
SAXReader reader = new SAXReader();
//2.指定解析的xml源
Document document = reader.read(new File("src/demo.xml"));
//3.获得元素
//根元素
Element rootElement = document.getRootElement();
//根元素下面的子元素
//rootElement.element("age");
//System.out.println(rootElement.element("stu").element("age").getText());
//获取根元素下面的所有子元素
List<Element> elements = rootElement.elements();
for(Element element:elements){
String name = element.element("name").getText();
System.out.println(name);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
运行结果:
三、添加Xpath路径语言
Dom4j支持xpath的写法,xpath是xml的路径语言,支持在解析xml时,能够快速的定位到具体的某一个元素。
下载jaxen.jar包:http://www.java2s.com/Code/Jar/j/jaxen.htm 并导入
具体使用方法:XPath语法
将MainTest类文件更改为:
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.List;
public class XpathTest {
public static void main(String[] args){
try{
//1.创建Sax读取对象
SAXReader reader = new SAXReader();
//2.指定解析的xml源
Document document = reader.read(new File("src/demo.xml"));
//3.获得元素
//根元素
Element rootElement = document.getRootElement();
Element nameElement = (Element) rootElement.selectSingleNode("//name"); //结果:张三
System.out.println(nameElement.getText());
//获取文档里的所有name元素
List<Node> list = rootElement.selectNodes("//name");
for(Node node:list){
System.out.println(node.getText());
}//结果:张三,李四
}catch(Exception e){
e.printStackTrace();
}
}
}