XPath教程:导航与数据类型

需积分: 0 5 下载量 104 浏览量 更新于2024-11-28 收藏 51KB DOC 举报
XPath概述 XPath是一种在XML文档中查找信息的语言,它被设计用来有效地选取XML文档中的节点,包括元素、属性、文本等。XPath基于XPath语言规范,是XML处理中的关键工具,常用于XSLT、XQuery以及许多其他XML相关技术。 1. XPath基本语法 XPath中的路径表达式用于定位XML文档中的节点。以下是一些基本路径操作: - `/`: 从根节点开始选取。 - `*`: 选取所有元素节点。 - `.`: 代表当前节点。 - `..`: 代表当前节点的父节点。 - `[index]`: 选取指定索引位置的子节点,索引从1开始。 - `@`: 用于选取属性。 - `//`: 任意级别的节点选取。 - `|`: 用于合并两个选择集。 例如: - `/Elem`: 选取文档中所有名为`Elem`的顶级元素。 - `./Elem`: 选取当前节点下的所有`Elem`元素。 - `@Prop`: 选取当前节点的`Prop`属性。 - `@*`: 选取当前节点的所有属性。 - `Elem[i]`: 选取当前节点下第i个`Elem`元素。 - `Elem[position()=1]`: 选取当前节点下的第一个`Elem`元素。 - `Elem/[@prop=“somevalue”]`: 选取具有属性`prop`且值为`somevalue`的`Elem`元素。 - `Elem1|elem2`: 选取当前节点下的`Elem1`或`elem2`元素。 - `//elem`: 选取文档中任何位置的`elem`元素。 - `Elem1//elem2`: 选取所有在`Elem1`子树中的`elem2`元素。 2. XPath比较和函数 XPath支持多种比较操作符,如`=`, `!=`, `<`, `<=`, `>`, `>=`,用于比较节点或节点的值。例如,`book[price>20]`选取价格大于20的`book`元素。 此外,XPath还提供了丰富的函数库,如: - `text()`: 选取当前节点的文本内容。 - `count()`: 计算节点集合的元素数量,如`count(PERSON[name=‘tom’])`。 - `number()`: 将表达式结果转换为数字,如`select=“number(book/price)”`。 - `substring()`: 提取字符串的一部分,如`select=“substring(name,1,3)”`。 - `sum()`: 计算一组数值的总和,如`select=“sum(//price)”`。 3. XPath数据类型 XPath中有四种基本数据类型: - 节点集(node-set): 集合形式的节点,不排序也不唯一。 - 布尔值(boolean): `true`或`false`。 - 字符串(string): 由字符组成的序列。 - 数值(number): 浮点数,包括特殊值NaN、infinity和-infinity。 这些数据类型之间可以相互转换,例如,布尔值可以转换为数值(`true()`为1,`false()`为0),字符串可以转换为数值(如果可能的话),而数值和字符串也可以转换为布尔值(非零、非空字符串视为`true`,否则为`false`)。 XPath是一种强大的查询语言,能够灵活地定位和操作XML文档中的结构化数据,广泛应用于XML文档的处理和分析。通过理解和熟练运用XPath,开发者可以更高效地处理XML文档,提取所需信息。
2023-05-05 上传