www.baike369.com
百科369 > XML教程 > XPath

XPath



XPath

XPath介绍

当我们编写程序处理XML文档时,经常希望选取一个XML文档中的某部分数据,并按照某特定的方式对它进行处理。

XML文档的表示方法

我们已经知道了如何使用开始标签和结束标签的嵌套结构表示XML文档,文档里还可能有处理指令、注释、属性说明、名称空间声明和元素文本内容等。

XML文档的模型

在串行化的XML文档里,先是一个开始标签,然后是一个结束标签,除了个别很短的XML文档外,大部分文档都是一个由许多元素组成的嵌套结构。


可视化XPath

可视化XPath

XPath是一个非常抽象而且很容易使人迷惑的主题。

XPath理解上下文

在XPath里,上下文是指当前处理器正在处理的节点的位置,这个节点称为上下文节点。

XPath的节点

在XPath数据模型里,节点代表XML文档的逻辑部分。

XPath 1.0的类型

XPath有4种表达式类型:布尔型 节点集 数值型 字符串2.0版大大扩展了表达式类型。


XPath简写语法和详写语法

XPath简写语法和详写语法

XPath语法不是用XML语言表示的。


XPath 1.0轴

XPath一共有13个轴,轴是用来导航XPath数据模型的节点树的工具。XSLT支持XPath全部13个轴,而一些XQuery处理器,特别是使用关系数据库的XQuery处理器,出于性能上的考虑,并没有支持这全部13个轴。这些XQuery不支持可以逆向遍历文档的逆向轴和一些不经常用的轴。
    注意,在下面的列表中,轴名的第一个字母总是小写的。由于XPath与XML一样,也是对大小写敏感的,因此把轴名的首字母用大写表示,会产生不可预料的结果。

XPath子轴

子轴是XPath的默认轴。子轴选取上下文节点(context node)的直接子节点。

XPath属性轴

属性轴用于选取元素节点的属性节点。

XPath使用子轴和属性轴的实例

本例使用XSLT中的XPath建立一个非常简单的HTML网页。

XPath祖先轴

祖先轴可以选取上下文节点的双亲节点、双亲节点的双亲节点等,直到文档的根节点为止。

XPath祖先自身轴

祖先自身轴(ancestor-or-self axis)包括上下文节点的全部祖先节点和上下文节点(后者是自身轴)。

XPath子孙轴

子孙轴选取上下文节点的子节点及子节点的子节点,依此类推。

XPath子孙自身轴

子孙自身轴包括了子孙轴里的全部节点和上下文节点(它就是自身轴)。

XPath后继轴

后继轴包括了文档顺序中紧跟在上下文节点之后的所有节点,不包括这个上下文节点的子孙节点、属性节点和名称空间节点。

XPath后继兄弟轴

后继兄弟轴包含了后继轴里与上下文节点享受同一个双亲的所有节点。

XPath名称空间轴

名称空间轴用于选取名称空间节点。

XPath双亲轴

双亲轴用于选择上下文节点的双亲节点。

XPath前驱节点和前驱轴

前驱节点是指按照文档顺序处在上下文节点之前的节点,但不包括上下文节点的祖先轴、属性轴和名称空间轴等的节点。

XPath前驱兄弟轴

前驱兄弟轴包括了所有在前驱轴里的节点,以及所有与上下文节点共享同一个双亲的节点。

XPath自身轴

自身(self)轴选取上下文节点。


XPath 1.0的函数

XPath 1.0标准定义了一个核心函数库。

XPath 1.0的布尔函数

XPath 1.0的布尔函数有下面几个:boolean()函数——以对象为参数,返回一个布尔值。

XPath 1.0的节点集函数

XPath 1.0的节点集函数有下面7个:count()函数——参数为节点集,返回这个节点集里的节点个数。

XPath 1.0的数值函数

XPath 1.0有下面的数值函数:ceiling()函数——参数为一个数值,返回一个比参数大的最小整数。

XPath 1.0的字符串函数

XPath 1.0有下面的字符串函数:concat()函数——需要两个或两个以上的字符串为参数,返回这些字符串的合并值。


XPath谓词

XPath谓词

谓词用于过滤用轴和定位方法选取的节点集的节点。


XPath表达式的结构

XPath表达式的结构

大多数复杂的XPath表达式是用于选取节点集的,因此这些表达式也是定位路径。


XPath 2.0

比起XPath 1.0,XPath 2.0功能强大许多,因而复杂许多。从语法上说,XPath 2.0是XML查询语言(XML Query Language,XQuery)的一个子集。

改进的XPath数据模型

从本质上说,XPath 2.0的数据模型不同于XPath 1.0的数据模型。

W3C XML Schema数据类型

在XPath 1.0里,节点类型系统是非常原始的,但是开发人员并没有意识到。

XPath 2.0新增的函数

XPath 2.0与XQuery 1.0共用一个函数库。

XPath 2.0特性

比起XPath 1.0。

Copyright© 2011-2016 www.baike369.com All Rights Reserved