首页 技术 正文
技术 2022年11月20日
0 收藏 649 点赞 3,703 浏览 1492 个字

1. XPath 简介

2. 选取节点

2.1 选取节点表达式

2.2 XPath 运算符

2.3 XPath 常用函数

2.4 亲属关系匹配

2.5 *综合示例

1. XPath 简介

什么是 XPath?

XPath 是一门在 XML 文档中查找信息的语言。

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集,这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。

XPath 术语

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。

XML 文档是被作为节点树来对待的。

树的根被称为文档节点或者根节点。

2. 选取节点

2.1 选取节点表达式

示例:http://www.w3school.com.cn/example/xmle/books.xml

模糊选取: 

2.2 XPath 运算符

2.3 XPath 常用函数

函数 返回值
last()

返回当前上下文中的最后一个节点的位置号数。

position() 返回当前节点的位置的数字,位于第几个。

2.4 亲属关系匹配

  • parent::*  表示当前节点的父节点元素
  • ancestor::*  表示当前节点的祖先节点元素
  • child::*  表示当前节点的子元素
  • descendant::* 表示当前节点的所有后代元素
  • self::*  表示当前节点的自身元素
  • ancestor-or-self::*  表示当前节点的及它的祖先节点元素
  • descendant-or-self::*  表示当前节点的及它们的后代元素
  • following-sibling::*  表示当前节点的后序所有兄弟节点元素
  • preceding-sibling::*  表示当前节点的前面所有兄弟节点元素
  • following::*  表示当前节点的后序所有元素
  • preceding::*  表示当前节点的所有元素

2.5 *综合示例

 1 # 使用唯一属性值
2 //book[@cover='paperback']
3
4 # 使用多个属性组合,构成唯一的属性组合
5 //book[@category='web' and @cover='paperback']
6
7 # 使用绝对路径
8 //bookstore/book[2]/title
9
10 # 使用标签的文字来精确定位
11 //*[.='Everyday Italian']
12 //*[text()='Everyday Italian']
13
14 # 使用部分文字
15 //title[contains(.,'Everyday')]
16 //title[contains(text(),'Everyday')]
17 //title[contains(text(),'Everyday')]/..
18
19 # 使用部分属性值
20 //book[contains(@category,'chi')]
21
22 # 使用通过文本值的大小比较来进行定位
23 //book[price<30]/title
24
25 # 使用函数
26 //book[position()>=3] # 定位第三、第四个节点
27 //book[last()] # 定位最后一个book节点
28 //book[last()-1] # 定位倒数第二个book节点
29
30 # 使用axis轴
31 # 1. 定位子节点
32 //book[2]/child::title # 定位到下一级的title节点
33 //book[2]/child::* # 定位到下一级的所有子节点
34 # 2. 定位父节点
35 //book[2]/title/..
36 //book[2]/title/parent::book
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,494
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,908
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,133
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297