使用xPath来读取xml文件

时间:2024-05-20 10:25:12

 

使用xPath来读取xml文件

使用xPath来读取xml文件

使用xPath来读取xml文件

使用xPath来读取xml文件

 四、XPath  语言
XPath 是一种用于在 XML 中查找信息语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
4.1 XPath 基本介绍
1)XPath 使用路径表达式在 XML 文档中进行导航。
2)XPath 包含一个标准函数库。
3)XPath 是 XSLT 中的主要元素。
4)XPath 是一个 W3C 标准。
4.2 使用 XPath 的好处
当我们单纯使用 DOM 定位节点时,大部分时间需要一层一层的处理,如果有了 XPath,我们定位节点
将变得很轻松,它可以根据路径、属性,甚至是条件进行节点的检索。
4.3 XPath 基本语法
XPath 的常见规则:
1)从根节点开始查找,如:/bookshelf/book,即从根标记下查找所有的 book 标记。
2)查找某个节点,不管其位置,如://book,即忽略位置,查找所有 book 标记。
3)@选择属性,如://@ID,即获取指定名称的属性,获取属性名为 ID 的属性,同样获取所有的 ID 属
性。
4)[index]根据索引选择节点,如:/bookshelf/book[1],即获取根标记下第一个 book 标记。
 注意事项:索引从 1 开始!
5)根据属性选取节点,如:/bookshelf/book[@ID='1234'],即获取根标记下所有属性 ID 为 1234 的 book
标记。
6)根据子元素的值获取节点,如:/bookshelf/book[student='金三顺']即获取根标记下 book 标记的子标
记 student 的值为“金三顺”的 book 标记。

xpath语法http://www.w3school.com.cn/xpath/xpath_syntax.asp

xpath其实就是以路径的形式进行筛选

使用XPath需要新添加包,不然会报错 xpath它是dom4j支持的但不是必须的.

<!-- https://mvnrepository.com/artifact/jaxen/jaxen -->
<dependency>
    <groupId>jaxen</groupId>
    <artifactId>jaxen</artifactId>
    <version>1.1.4</version>
</dependency>

<dependency>
    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.1.0</version>
</dependency>
package day12;

import java.io.FileInputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

/**
 * 使用XPath检索XML数据
 * @author Administrator
 *
 */
public class XPathDemo {
	public static void main(String[] args) {
		try {
			SAXReader reader = new SAXReader();
			Document doc = reader.read(new FileInputStream("myemp.xml"));
			/*
			 * Document支持使用xpath检索数据
			 * 前提是必须引入jaxen这个jar包 
			 */
			String xpath = "/list/emp[gender='男']/age";
			List<Node> list = doc.selectNodes(xpath);
			
			for(Node ele:list) {
				System.out.println(ele.getName()+":"+ele.getText());
			}
			
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
}