XPath学习笔记(三)

四、XPath 轴(axis):

1、用例:

 

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore> 

 

2、XPath轴:

一个轴代表了相对于一个特定结点的一种关系,常用来在结点树中参照某一结点来定位其它结点。

轴名称结果
ancestor 选取当前结点的所有祖先结点
ancestor-or-self 选取当前结点及其所有祖先结点
attribute 选取当前结点的所有属性
child 选取当前结点的所有孩子结点
descendant 选取当前结点的所有后代结点
descendant-or-self 选取当前结点及其所有后代结点
following 选取当前结点包围范围之后的所有结点
following-sibling 选取当前结点之后的所有兄弟结点
namespace 选取当前结点的所有命名空间结点
parent 选取当前结点的所有父亲结点

 

3、定位路径表达式(Location Path Expression):

一个定位路径可以是绝对的或相对的。绝对路径用“/”开头,相对路径开头没有“/”。

An absolute location path:

/step/step/...

A relative location path:

step/step/...

 

每个step是相对于当前结点集来获得的。

一个step由以下组成:

  • 一个轴(axis)
  • 结点名或结点类型
  • 0或更多的谓词

具体语法如下:

axisname::nodetest[predicate] 

 

 

4、例子:
例子结果
child::book 选取当前结点的孩子结点中的book结点
attribute::lang 选取当前结点所有属性中的lang属性
child::* 选取当前结点的孩子结点中的所有元素结点
child::text() 选取当前结点的孩子结点中的所有文本结点
ancestor::book 选取当前结点的祖先结点中的book结点
child::*/child::price 选取当前结点的所有price孙子结点

 

五、XPath操作符:

一个XPath表达式返回的值可能是:结点集、字符串、布尔值、数值。

1、XPath 操作符:
操作符描述
| 计算两个独立的表达式
+ 加法
- 减法
* 乘法
div 除法
= 等于
!= 不等于
< 小于
<= 小于或等于
> 大于
>= 大于或等于
or 或运算
and 与运算
mod 取模运算

 

posted @ 2019-07-29 16:05  hilovexy  阅读(172)  评论(0编辑  收藏  举报