我是靠谱客的博主 落后啤酒,最近开发中收集的这篇文章主要介绍XPath学习笔记XPath语法XPath轴XPath运算符函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

XPath语法

XPath使用路径表达式选取XML文档中的节点或者节点集。

路径表达式

表达式描述
nodename获得该节点下的所有节点
/从根节点开始
//从匹配选择的当前节点开始,不考虑位置
.选取当前节点
选取当前节点的父节点
@选取属性

比如:

表达式描述
nation选取nation元素所有子节点
/nation选取根节点nation,斜杠 / 开始表示当该元素的绝对路径
nation/province选取属于nation子元素的所有province元素
//province选取所有province元素
nation//province选取nation元素后代的所有province元素
//@lang选取名为lang的所有属性

谓语

谓语放在路径表达式后面的方括号里。用于对选取的结果筛选。

路径表达式结果
/nation/province[1]选取属于nation子元素的第一个province元素
/nation/province[last()]选取属于nation子元素的最后一个province元素
/nation/province[last()-1]选取属于nation子元素的倒数第二个province元素
/nation/province[position()<10选取属于nation子元素的前9个province元素,位置是从1开始
//title[@lang]选取所有lang属性的title元素
//title[@lang=‘eng’]选取所有lang属性值为eng的title元素
nation/province[popu>1000]选取nation子元素所有province元素,且popu元素值大于1000
nation/province[popi>1000]//title选取nation子元素所有province元素,其中price元素大于1000。从结果中选取所有title元素

匹配位置节点

XPath通配符可以匹配位置的XML元素。

通配符描述
*匹配任何元素节点
@*匹配任何属性节点
node()匹配任何类型的节点

比如:

路径表达式结果
/nation/*选取nation元素的所有子元素
//*选取文档中的所有元素
//title[@*]选取所有带有属性的title元素

表达式组合

使用 | 将表达式组合在一起,选取多个路径。

路径表达式结果
//nation/state | //nation/province选取nation元素所有的state元素和province元素
//state | //province选取所有的state元素和province元素
/nation/province/worker | //popu选取nation元素下province元素所有的worker元素,和文档中所有的popu元素

XPath轴

轴定义相对于当前节点的所有节点集

轴名称结果
ancestor选取当前节点的所有祖先节点
ancestor-or-self选取当前节点的所有祖先节点以及自身节点
attribute选取当前节点的所有属性
child选取当前节点的所有子元素
descendant选取当前节点的所有子孙元素
descendant-or-self选取当前节点的所有子孙元素以及自身节点
following选取文档中当前节点的结束标签之后的所有节点
following-sibling选取当前节点之后的所有兄弟节点
namespace选取当前节点的所有命名空间节点
parent选取当前节点的父节点
preceding选取文档中当前节点的开始标签之前的所有节点
preceding-sibling选取当前节点之前的所有兄弟节点
self选取当前节点

XPath运算符

XPath表达式可返回节点集、字符串、逻辑、以及数字

运算符演示结果
|//province | //state返回所有province和state元素集
+6 + 410
-6 - 42
*6*424
div4 div 22
=popu = 1000如果popu为1000,返回true,否则返回false
!=popu != 1000如果popu不是1000,返回true,否则返回false
<popu < 1000如果popu小于1000,返回true,否则返回false
<=popu <= 1000满足条件返回true,否则返回false
>popu > 1000满足条件返回true,否则返回false
>=popu >= 1000满足条件返回true,否则返回false
orpopu = 1000 or popu = 2000popu为1000或者2000返回true,否则返回false
andpopu > 1000 and popu< 2000popu为1000与2000之间的值,返回true,否则返回false
mod5 mod 21

函数

  • 上下文函数
名称说明
fn:position()返回当前正处理的节点的index位置
fn:last()返回当前正处理节点列表中项目数目
fn:current-dataTime()返回当前的dateTime(带有时区)
fn:current-data()返回当前的日期(带有时区)
fn:current-time()返回当前的时间(带有时区)
fn:implicit-timezone()
fn:default-collation()返回默认对照的值
fn:static-base-uri

最后

以上就是落后啤酒为你收集整理的XPath学习笔记XPath语法XPath轴XPath运算符函数的全部内容,希望文章能够帮你解决XPath学习笔记XPath语法XPath轴XPath运算符函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部