参考资料

  1. 正则生成代码有哪些
  2. xpath定位方法有哪些
  3. XPath 运算符
  4. 正则表达式测试工具有哪些
  5. XPath 选取节点
  6. xpath多个相同元素怎么定位
  7. XPath 谓语(Predicates)
  8. XPath Helper 介绍

XPath(XML Path Language)

  1. 简介

  • 用于在XML文档中导航和查询节点的语言

  • W3C标准

  • 可用于XSLT、XQuery等XML技术中

  1. 基本概念

  • 节点:元素、属性、文本等

  • 路径表达式:定位节点的语法

  • 谓词:筛选节点的条件

  1. 节点类型

  • 元素节点

  • 属性节点

  • 文本节点

  • 命名空间节点

  • 处理指令节点

  • 注释节点

  • 文档节点

  1. 路径表达式语法

  • /:从根节点开始

  • //:从任意位置开始

  • .:当前节点

  • ..:父节点

  • @:属性

  1. 常用运算符

  • |:联合多个路径

  • *:通配符

  • []:谓词表达式

  • and/or:逻辑运算

  • =,!=,<,>:比较运算

  1. 轴(Axis)

  • child:::子节点(默认)

  • attribute:::属性

  • descendant:::后代

  • ancestor:::祖先

  • following:::之后的节点

  • preceding:::之前的节点

  1. 内置函数

  • text():获取文本内容

  • count():计数

  • sum():求和

  • position():位置

  • last():最后位置

  • contains():包含检测

  • starts-with():开头检测

  1. 示例

基本路径:

  • /bookstore/book:选择根bookstore下的所有book元素

  • //book:选择文档中所有book元素

  • bookstore//book:选择bookstore后代中的所有book

属性选择:

  • //@lang:选择所有lang属性

  • //book[@lang='en']:选择lang属性为en的book

谓词:

  • /bookstore/book[1]:第一个book

  • /bookstore/book[last()]:最后一个book

  • /bookstore/book[price>35]:价格大于35的book

函数:

  • //book[contains(title,'XML')]:标题包含XML的book

  • count(//book):统计book数量

轴:

  • child::book:子book元素

  • attribute::lang:lang属性

  • ancestor::book:祖先book元素

  1. 使用场景

  • XML文档查询

  • Web抓取(结合HTML解析)

  • 数据提取

  • 自动化测试