admin 管理员组

文章数量: 1086019


2024年3月10日发(作者:awk内置函数)

经常在工作中会使用到XPath的相关知识,但每次总会在一些关键

的地方不记得或不太清楚,所以免不了每次总要查一些零碎的知识,

感觉即很烦又浪费时间,所以对XPath归纳及总结一下。

在这篇文章中你将能学习到:

XPath简介

XPath 路径表达式详解

XPath在DOM,XSLT及XQuery中的应用

XPath简介

XPath是W3C的一个标准。它最主要的目的是为了在XML1.0或X

ML1.1文档节点树中定位节点所设计。目前有XPath1.0和XPath2.

0两个版本。其中Xpath1.0是1999年成为W3C标准,而XPath

2.0标准的确立是在2007年。W3C关于XPath的英文详细文档请

见:/TR/xpath20/ 。

XPath是一种表达式语言,它的返回值可能是节点,节点集合,原

子值,以及节点和原子值的混合等。XPath2.0是XPath1.0的超集。

它是对XPath1.0的扩展,它可以支持更加丰富的数据类型,并且X

Path2.0保持了对XPath1.0的相对很好的向后兼容性,几乎所有的

XPath2.0的返回结果都可以和XPath1.0保持一样。另外XPath2.

0也是XSLT2.0和XQuery1.0的用于查询定位节点的主表达式语言。

XQuery1.0是对XPath2.0的扩展。关于在XSLT和XQuery中使

用XPath表达式定位节点的知识在后面的实例中会有所介绍。

在学习XPath之前你应该对XML的节点,元素,属性,原子值(文

本),处理指令,注释,根节点(文档节点),命名空间以及对节

点间的关系如:父(Parent),子(Children),兄弟(Sibling),

先辈(Ancestor),后代(Descendant)等概念有所了解。这里

不在说明。

XPath路径表达式

在本小节下面的内容中你将可以学习到:

路径表达式语法

相对/绝对路径

表达式上下文

谓词(筛选表达式)及轴的概念

运算符及特殊字符

常用表达式实例

函数及说明

这里给出一个实例Xml文件。下面的说明及实例都是基于该XML文

件。

路径表达式语法:

路径 = 相对路径 | 绝对路径

XPath路径表达式 = 步进表达式 | 相对路径 "/"步进表达

式。

步进表达式=轴 节点测试 谓词

说明:

其中轴表示步进表达式选择的节点和当前上下文节点间的

树状关系(层次关系),节点测试指定步进表达式选择的

节点名称扩展名,谓词即相当于过滤表达式以进一步过滤

细化节点集。

谓词可以是0个或多个。多个多个谓词用逻辑操作符and,

or连接。取逻辑非用not()函数。

请看一个典型的XPath查询表达式:/messages/message//child::

node()[@id=0],其中/messages/message是路径(绝对路径以"/

"开始),child::是轴表示在子节点下选择,node()是节点测试表示


本文标签: 节点 表达式 步进 实例 谓词