简单用DOM4J结合XPATH解析XML
2016-10-16 14:31
351 查看
由于DOM4J在解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便,结合XPATH就可以直接获取到某个元素
使用dom4j支持xpath的操作的几种主要形式
第一种形式
/AAA/DDD/BBB: 表示一层一层的,AAA下面 DDD下面的BBB
第二种形式
//BBB: 表示和这个名称相同,表示只要名称是BBB,都得到
第三种形式
/*: 所有元素
第四种形式
BBB[1]: 表示第一个BBB元素
BBB[last()]:表示最后一个BBB元素
第五种形式
//BBB[@id]: 表示只要BBB元素上面有id属性,都得到
第六种形式
//BBB[@id='b1'] 表示元素名称是BBB,在BBB上面有id属性,并且id的属性值是b1
使用dom4j支持xpath具体操作
默认的情况下,dom4j不支持xpath,如果想要在dom4j里面是有xpath,第一步需要,引入支持xpath的jar包,如下:
在dom4j里面提供了两个方法,用来支持xpath
selectNodes("xpath表达式"),获取多个节点
selectSingleNode("xpath表达式"),获取一个节点
应用简单案例:
1.xml文件
Java代码
使用dom4j支持xpath的操作的几种主要形式
第一种形式
/AAA/DDD/BBB: 表示一层一层的,AAA下面 DDD下面的BBB
第二种形式
//BBB: 表示和这个名称相同,表示只要名称是BBB,都得到
第三种形式
/*: 所有元素
第四种形式
BBB[1]: 表示第一个BBB元素
BBB[last()]:表示最后一个BBB元素
第五种形式
//BBB[@id]: 表示只要BBB元素上面有id属性,都得到
第六种形式
//BBB[@id='b1'] 表示元素名称是BBB,在BBB上面有id属性,并且id的属性值是b1
使用dom4j支持xpath具体操作
默认的情况下,dom4j不支持xpath,如果想要在dom4j里面是有xpath,第一步需要,引入支持xpath的jar包,如下:
在dom4j里面提供了两个方法,用来支持xpath
selectNodes("xpath表达式"),获取多个节点
selectSingleNode("xpath表达式"),获取一个节点
应用简单案例:
1.xml文件
<?xml version="1.0" encoding="UTF-8"?> <class> <student> <name>张三</name> <sid>111111</sid> </student> <student id="stu1"> <name>李四</name> <sid>222222</sid> </student> </class>
Java代码
import java.util.List; import org.dom4j.Document; import org.dom4j.Node; import org.dom4j.io.SAXReader; public class Dom4jXpath { public static void main(String[] args) throws Exception { select();//查询所有name的值 //select2();//查询id=stu1的学生的name的值 } //查询所有name的值 private static void select() throws Exception { SAXReader saxReader=new SAXReader(); Document document=saxReader.read("src/1.xml"); List<Node>list=document.selectNodes("//name"); for(int i=0;i<list.size();i++) System.out.println(list.get(i).getText()); } //查询id=stu1的学生的name的值 private static void select2() throws Exception { SAXReader saxReader=new SAXReader(); Document document=saxReader.read("src/1.xml"); Node node=document.selectSingleNode("//student[@id='stu1']/name"); System.out.println(node.getText()); } }
相关文章推荐
- DOM4J结合XPATH简单解析xml
- 使用dom4j和XPath解析XML之例子二
- 使用dom4j和XPath解析XML之例子一
- [工作笔记] Dom4j 和 XPath 结合 选取 xml 中任意深度的(即所有的)特定元素
- dom4j 对xml文件循环解析简单实例
- java使用xpath和dom4j解析xml
- dom4j解析XML简单例子
- dom4j解析XML时使用XPath直接定位至标签实例
- XML 的 Dom4j 解析范例,以及 XPath
- [工作笔记] Dom4j 和 XPath 结合 选取 xml 中任意深度的(即所有的)特定元素 - PayneWang@王沛 - 博客园
- xml简单介绍及使用dom4j进行解析
- dom4j 使用xpath 解析 persistence.xml 出现xmlns后不能解析问题解决
- 使用dom4j的xPath解析XML
- dom4j解析XML简单方法
- Perl 版本的 XML 解析引擎及 XPATH 搜索引擎 —— 某人的简单实现版本
- 使用DOM4J解析XML文档,以及使用XPath提取XML文档
- dom4j用XPath解析xml 遇到的问题
- xml解析dom4j xpath方式
- java使用dom4j和XPath解析XML与.net 操作XML小结
- Dom4j解析XML学习之简单解析