xpath教程【菜鸟教程】
目录
一、XPath 简介
二、XPath 术语
三、节点关系
四、XPath 语法
五、XPath 轴(Axes)
六、XPath 运算符
七、XPath 实例
一、XPath 简介1、介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 是 XSLT 中的主要元素。 XQuery 和 XPointer 均构建于 XPath 表达式之上。 在学习之前应该具备的知识:HTML / XHTML,XML / XML Namespaces 2、什么是 XPath? XPath 使用路径表达式在 XML 文档中进行导航,XPath 包含一个标准函数库 3、XPath 路径表达式 XPath使用路径表达式来选取XML文档中的节点、节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。 4、XPath 标准函数 XPath 含有 100 +个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。 |
二、XPath 术语(1)XPath 节点 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释、文档(根)节点。 XML 文档是被作为节点树来对待的。树的根被称为文档节点。 请看下面这个 XML 文档: 上面的XML文档中的节点例子: (书店、作者、语言) (2)基本值(原子值) 基本值是无父或无子的节点。基本值的例子: (3)项目(Item) 项目是基本值或者节点。 |
三、节点关系(1)父 每个元素以及属性都有一个父。 在下面的例子中,book 元素是 title、author、year、price , 元素的父: (书本:包含属性title、author、year、price ) (2)子 元素节点可有0个、1个或n个 子。 在下面的例子中,title、author、year 、price 元素都是 book 元素的子: (3)同胞 (兄弟) 拥有相同的父的节点, 在下面的例子中,title、author、year、 price 元素都是同胞: (4)先辈 (父) 某节点的父、父的父,等等。 在下面的例子中,title 元素的先辈: 是 book 元素和 bookstore 元素 (bookstore:书店) (5)后代 (子) 某个节点的子,子的子,等等。在下面的例子中,bookstore 的后代: 是 book、title、author、year、 price 元素 |
四、XPath 语法XPath 使用路径表达式来选取 XML 文档中的节点。————-提取元素 节点是通过沿着 路径 (path) or 步 (steps) 来选取的。 (1)XML 实例文档 我们将在下面的例子中使用这个 XML 文档。 (2)选取节点 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径来选取的。 下面列出了最有用的路径表达式:
在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
(3)谓语——— 方括号[ ] 表示 谓语用来查找某个特定的节点 或者 包含某个指定的值的节点。 谓语被嵌在方括号[ ]中。 在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
(4)选取未知节点 XPath 通配符可用来选取未知的 XML 元素。
举例:
(5)选取若干路径 (”|” 运算符,且 的意思) 通过在路径表达式中使用 “|” 运算符,您可以选取若干个路径。 举例:
|
五、XPath 轴(Axes)1、XML 实例文档 我们将在下面的例子中 下面都使用此 XML 文档: 2、XPath 轴(Axes) 轴可定义相对于当前节点的节点集。
|
六、XPath 运算符XPath 表达式 可返回 节点集、字符串、逻辑值、数字。 下面列出了可用在 XPath 表达式中的运算符:
|
七、XPath 实例1、选取节点 大部分浏览器使用 evaluate() 方法从 XML 文档中选取节点: xpath = ” /bookstore/book[1]/title ” xmlDoc.evaluate (xpath, xmlDoc, null, XPathResult.ANY_TYPE,null); 说明:evaluate vt.计算,评估 ( [ɪˈvæljʊˌeɪt] ) 2、选取所有 title 下面的例子选取所有 title 节点: /bookstore/book/title 3、选取第一个 book 的 title 下面的例子选取 bookstore 元素下面的第一个 book 节点的 title: /bookstore/book[1]/title 4、选取所有价格 下面的例子选取 price 节点中的所有文本: /bookstore/book/price/text() 5、选取价格高于 35 的 price 节点 下面的例子选取价格高于 35 的所有 price 节点: /bookstore/book[price>35]/price 6、选取价格高于 35 的 title 节点 下面的例子选取价格高于 35 的所有 title 节点: /bookstore/book[price>35]/title |
微信赞赏
支付宝赞赏