Xpath基础内容

路径选择:

表达式描述
.当前节点
..当前节点的父节点
/直接子节点
//子孙节点

定位节点:

1. /class/student
2. /class/student/name

1.表示选择“class”节点下的所有“student”节点

2.表示选择“class”节点下的所有“student”节点的“name”节点

绝对路径和相对路径定位节点:

1. /class/student/name
2. class/student/name

1. 利用绝对路径选择进行节点定位

2.利用相对路径进行节点定位

多路径选择的定位节点:

/class/student/name|/class/student/size|/class/teacher/name

利用“|”操作符来选择多个路径。

表示选择“/class/student/name”路径和“/class/student/size”路径以及“/class/teacher/name”路径

选择未知元素:

利用“*”操作符来选择未知的XML元素

1. /class/student/*
2. /class/*/name
3. /*/*/name
4. //*

1. 选择“class”节点下所有的“student”节点的所有节点

2.选择“class”节点下的所有节点的“name”节点

3.用于选择具有两个祖先的所有“name”节点

4.//*用于选择该文档的所有元素。

选择分支:

有时匹配路径的选项不止一个,我们可以通过使用“[ ]”来进一步指定某一个元素,在中括号中可以使用各种函数,数值,表达式等来指定某个符合条件的元素。如下:

1. /class/student[1]
2. /class/student[age]
3. /class/student[age=20]
4. /class/student[age=20]/name
5. /class/student[last()]

1. 选择“class”节点下的第一个“student”子节点

2. 选择“class”节点下含有“age”节点的所有“student”节点

3.选择“class”节点下含有“age”且“age=20”的所有“student”节点

4. 选择“class”节点下含有“age=20”的所有“student”节点的所有“name”节点

5. 选择“class”节点下最后一个“student”子节点

选择属性:

在xpath中要获得属性信息必须以前缀“@”来指定,如下:

1. //@id
2. /class/student[@id]
3. /class/student[@*]
4. /class/student[@id='ADR02']

1. 选择所有属性名为“id”的属性

2. 选择“class”节点包含有“id”属性的所有“student”节点

3. 选择“class”节点下包含有属性的所有“student”节点

4. 选择“class”节点下属性“id”值为“ADR02”的所有“student”节点

节点类型:

类型描述
comment()注释节点
node()任何类型的节点
processing-instruction()处理指令节点
text()文本类型节点

轴定位:

轴名称描述
ancestor选取当前节点的所有祖父节点
ancestor-or-self

选取当前节点的所有祖父节点和当前节点本身

attribute选取当前节点的所有属性。
child

选取当前节点的所有子节点

descendant选取当前节点的所有后代节点(子孙节点)
descendant-or-self选取当前节点的所有后代节点和当前节点本身
following选取文档中当前节点的结束标签后的所有节点
following-sibling选取当前节点之后的所有兄弟(同级)节点
namespace选取当前节点的所有命名空间节点
parent

选取当前节点的父节点

preceding选取文档中当前节点的开始标签之前的所有节点
preceding-sibling选取当前节点之前的所有兄弟(同级)节点
self选取当前节点

 

 

 

轴定位的语法:

轴名::节点测试[判定语句]

1. child::age[age=20]
2. child::text()

节点测试是一个条件,它要求凡是轴选中的所有节点必须满足此条件。

关系表达式:

运算符作用
=判断两个数值是否相等
!=判断操作数1是否不等于操作数2
<小于
<=小于等于
>大于
>=大于等于
or
and

xpath函数库

节点集函数:

函数名描述
count()返回被选元素的数量
id()通过元素的唯一ID选择元素
last()返回最后一个节点是第几节点
local-name()返回节点集中的第一个节点的local name
name()返回元素的元素名
namespace-uri()返回节点集中的第一个节点的命名空间URI
position()返回被选节点是第几节点

字符串函数:

类型描述
concat()返回字符串连接的结果
contains()如果第一个字符串包含着第二个字符串则返回真,否则返回假
normalize-space()返回去除了前后空白以及重复空白的参数字符串
starts-with如果第一个字符串以第二个字符串开头为则返回真,否则返回假
string()将对象转换为字符串。
string-length()返回第一个字符串的长度
substring()返回第一个参数中从第二个参数的指定未知开始、第三个参数指定的长度的字符串
substring-after()返回字符串中从开始到某以字符串第一次出现的位置后的字符串

数值函数:

函数名描述
ceiling()返回不小于参数的最小整数
floor()返回不大于参数的最大整数
number()将参数转换为数字
round()返回与参数最接近的整数值
sum()

返回节点集中所有节点的总和。每一个节点在求和之前先转换成数值

布尔函数:

函数名描述
boolean()

将参数转换成布尔值。
如果参数为负数或者正数则转换为true

如果参数为0或者NaN(不是数字),则转换为false

如果参数为非空的节点集,转换为true;空节点集转换为false

如果参数为非空的字符串,转换为true;空字符串转换成false

如果参数不属于四种基本类型的对象,通过该类型相应方式转换为布尔值。

false()返回false
lang()

如果该节点的xml:lang属性与参数字符串相同,则返回true。此函数不常用

not()

如果参数为false则返回true,否则返回false

true()返回true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值