XPath 简介

XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

什么是 XPath?

  • XPath 使用路径表达式在 XML 文档中进行导航
  • XPath 包含一个标准函数库
  • XPath 是 XSLT 中的主要元素
  • XPath 是一个 W3C 标准

XPath 路径表达式

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

XPath 标准函数

XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。

XPath 在 XSLT 中使用

XPath 是 XSLT 标准中的主要元素。如果没有 XPath 方面的知识,您就无法创建 XSLT 文档。

您可以在我们的《XSLT 教程》中的内容。

XQuery 和 XPointer 均构建于 XPath 表达式之上。XQuery 1.0 和 XPath 2.0 共享相同的数据模型,并支持相同的函数和运算符。

您可以在我们的《XQuery 教程》中有关 XQuery 的知识。

——————————————————————————————————————————————————————————————————————————

XPath 节点

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。

XPath 术语

节点(Node)

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。

请看下面这个 XML 文档:

<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book><title lang="en">Harry Potter</title><author>J K. Rowling</author> <year>2005</year><price>29.99</price>
</book></bookstore>

上面的XML文档中的节点例子:

<bookstore> (文档节点)
<author>J K. Rowling</author> (元素节点)
lang="en" (属性节点)

基本值(或称原子值,Atomic value)

基本值是无父或无子的节点。

基本值的例子:

J K. Rowling
"en"

项目(Item)

项目是基本值或者节点。

节点关系

父(Parent)

每个元素以及属性都有一个父。

在下面的例子中,book 元素是 title、author、year 以及 price 元素的父:

<book><title>Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price>
</book>

子(Children)

元素节点可有零个、一个或多个子。

在下面的例子中,title、author、year 以及 price 元素都是 book 元素的子:

<book><title>Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price>
</book>

同胞(Sibling)

拥有相同的父的节点

在下面的例子中,title、author、year 以及 price 元素都是同胞:

<book><title>Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price>
</book>

先辈(Ancestor)

某节点的父、父的父,等等。

在下面的例子中,title 元素的先辈是 book 元素和 bookstore 元素:

<bookstore><book><title>Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price>
</book></bookstore>

后代(Descendant)

某个节点的子,子的子,等等。

在下面的例子中,bookstore 的后代是 book、title、author、year 以及 price 元素:

<bookstore><book><title>Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price>
</book></bookstore>

XPath 语法

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

具体内容及其他详细内容:http://www.w3school.com.cn/xpath/xpath_syntax.asp

红宝书 第18章整理——XPath相关推荐

  1. 《JavaScript高级程序设计(第四版)》红宝书学习笔记(2)(第四章:变量、作用域与内存)

    个人对第四版红宝书的学习笔记.不适合小白阅读.这是part2.持续更新,其他章节笔记看我主页. (记 * 的表示是ES6新增的知识点,记 ` 表示包含新知识点) 第四章:变量.作用域与内存 4.1 原 ...

  2. 红宝书--第一章总结分享

    红宝书–第一章总结分享 作为一名前端开发者,我想很有必要认真阅读业界大佬的著作,这不仅能拓展认知,更能发现曾经的遗漏点和误区.为了激励自己能坚持阅读完,特在此分享自己的品读总结. 菜鸟也会变成老鸟~为 ...

  3. 红宝书初步研读随手笔记

    红宝书初步研读系列–第一二三章 红宝书第一遍研读,知识点整理–随手笔记 第一章 什么是JavaScriptS 1.1. JavaScript包括: ECMAScript (核心)DOM(文档对象模型) ...

  4. 市面上仅此一本的 App 安全“红宝书”,终于来了!

    2014 年初,移动互联网产业快速发展,App 井喷式爆发,绝大多数使用的是 Android 系统.但是那时候大多数的开发者没有做好 App 的安全防护措施,面对移动互联网黑灰产的攻击,App 基本上 ...

  5. 《JavaScript高级程序设计(第四版)》红宝书学习笔记(1)

    个人对第四版红宝书的学习笔记.不适合小白阅读.这是part1,包含原书第二章(HTML中的Javascript)和第三章(语言基础).持续更新,其他章节笔记看我主页. (记 * 的表示是ES6新增的知 ...

  6. 《JavaScript高级程序设计》红宝书第二遍阅读(动手实践)

    <JavaScript高级程序设计>红宝书第二遍阅读(动手实践) 第1章--什么是JavaScript 第2章--HTML中的JavaScript 第3章--语言基础 第4章--变量.作用 ...

  7. JS红宝书·读书笔记

    JavaScript高级程序设计 花了半个多月的时间,终于又把"JS红宝书"又撸了一遍. 第一次读"JS红宝书"还是2015年初学JS的时候,那时候只是把语法部 ...

  8. JavaScript 红宝书第4版上市啦!「文末送几本给大家」

    文末有活动 人的一生中总要读几本经典书,在这个"经典"泛滥的年代,什么才是权威的代表,我想大概是一本的书的口碑,能积累下上佳口碑的书,往往也是能经得住时间推敲的.比如这本: 我相信 ...

  9. OpenGL编程指南 (红宝书 第八版) 样例代码配置问题汇总

    代码下载 环境配置问题glut 和 glew1 基本头文件和库文件配置2 以下是正文内容 第一个渲染程序Triangles3 第三章 03ch03_drawcommands4 本文是笔者自己在配置中遇 ...

最新文章

  1. mysql创建用户,并赋予权限:只能查某个数据库中的某张表(只读)
  2. flash 多个文件上传
  3. POJ1274 The Perfect Stall(二分图)
  4. oracle10g备份导入
  5. 中国餐馆过程(Chinese restaurant process)
  6. P2604 [ZJOI2010]网络扩容
  7. 闲来无事,画个佩奇可好?
  8. 如何在Ubuntu 18.04上安装OpenCV
  9. SQL Server_SQL Server Windows NT - 64 bit
  10. java 以2为底的对数_Java对数函数及Java对数运算
  11. SVN提交失败 Can't write to file 'E:\Repositories\xqgf\db\txn-protorevs\3616-2y4.rev':
  12. Linux用户与内核空间交互—procfs
  13. 安科瑞ACX电瓶车智能充电桩,支付方式可选择刷卡、扫码、免费充电使用,设备内部可引出10路出线至专用插座
  14. 有关信息安全的三个案例
  15. Python web框架Django学习(1)
  16. K8s NetworkPolicy与网络插件flannel、calico详细版
  17. 使用protobuf作为游戏网络通讯的协议
  18. 关于C语言的图像光标处理
  19. 中国铁通集团有限公司
  20. Git You have to resolve all merge conflicts before checkout.

热门文章

  1. html 文本框去掉边框
  2. 一文带你快速上手Highcharts框架
  3. English trip V2 - 12 Movies and Televison 电影和电视 Teacher:Corrine Key:
  4. 二项分布、泊松分布、指数分布和正态分布的matlab实现
  5. CVX配合MATLAB的使用心得
  6. 打印和预览功能兼容IE、谷歌、火狐,解决IE打印只显示第一页
  7. IT男装逼利器:如何像黑客一样聊天 Mojo-Webqq
  8. app微信登陆 获取code等信息
  9. 朱啸虎:创业公司不要一开始就想着教育市场
  10. 山东科技大学OJ题库 1014-自动拨出电话的程序