一、XPath语言是一门专用于在XML文档中查找信息的语言,其他XML程序可利用XPath在XML文档中对元素和属性进行导航。
提问:为什么要查找标签和属性呢?
回答:因为XML文档是用来存储数据的,需要将数据提取出来使用,所以通过查找标签和属性进一步获取数据。
XPath节点:
XPath基本概念
基本知识(或称为原子值)
-基本值专门用于表示简单的数据值,例如整数值,字符串等。我们可以把基本值当成没有父节点且没有子节点的节点。
例:"chinese"
项
-项是XPath2.0提出的一个术语,一个项代表一个节点或基本值。
节点集和序列
-在某些情况下,XPath表达式可以表示多个节点,多个节点组合在一起在XPath1.0里称为节点集。
-XPath2.0提出一个序列的概念,XPath2.0的序列可以代表一个普通的项,也可以代表节点集。
节点关系
父节点;子节点 ;兄弟节点;祖先节点;后代节点;
相对路径和绝对路径:
XPath同样支持相对路径和绝对路径,对于XPath而言,绝对路径以斜线(/)开头,而相对路径则不会以斜线(/)开头
例如:
XPath基础语法:
XPath使用路径表达式来定位XML文档中的节点或节点集,每个Xpath表达式总由多个步(step)组成,多个步之间用斜线分隔。
例如: /list/book/name
XPath中步的完整语法格式如下:
轴::节点测试[限定谓语]
XPath的步骤使用轴来定义所选节点与当前节点之间的结构关系。
节点测试:
节点测试用于从指定轴所匹配的节点集中选出特定的节点。
限定谓语:
限定谓语是一个boolean表达式,或者可以转换为boolean值得表达式,用于进一步提炼所选的节点集。限定谓语应该放在括号中。
child::book[1] 或 child::book[position()=1]
XPath运算符
算术运算符:
比较运算符:
逻辑运算符:
组合多个路径的运算符:
XPath还提供了一个"|" 运算符,可用于组合多个路径表达式,通过“|”运算符,可以一次选取若干个路径。
例如:book[position()=1] | name[position()=last()]
节点相关的常见函数: