XPath的基本内容

目录:

一.XPath基本概述

二.XPath 的基本用法

三.XPath的基本语法

内容:

一.XPath基本概述

XPath 是一门在 XML 文档中查找信息的语言,它是 XSL Transformations (XSLT) 中的主要元素,也是 XQuery 和 XPointer 的基础。XPath 使用路径表达式在 XML 文档中进行导航,通过一系列函数和操作来选取、过滤和操作数据。

二.XPath 的基本用法

1. XPath 术语:

节点 (Node):XPath 中的数据以树状结构组织,每个节点表示一个数据项。

路径表达式 (Path expression):XPath 使用路径表达式来选取节点,例如:/bookstore/book。

轴 (Axis):XPath 有三种轴:根轴 (root axis)、祖先轴 (ancestor axis) 和后代轴 (descendant axis)。

函数 (Function):XPath 提供了一系列函数,用于操作节点和属性,例如:count()、sum() 和 substring()。

获取 HTML 的 XPath:

手动分析:通过观察 HTML 结构,手动编写 XPath 表达式。

浏览器生成:一些浏览器提供了生成 XPath 的功能,例如 Chrome 开发者工具。

2.应用 XPath 提取内容:

// 定位根节点://bookstore。

/ 往下层寻找:/bookstore/book。

提取文本内容://text()。

提取属性内容://@xxxx,例如://book[@id='101']。

3.构造 XPath 查询器:

对于 XML 文档,可以使用 DOMParser 创建 DOM 对象,然后创建 DOMXPath 对象。

对于 HTML 文档,可以使用 Similar DOM Layout 或其他库将 HTML 转换为 DOM 对象,然后创建 DOMXPath 对象。

4.使用 XPath 查询:

使用 query() 方法执行 XPath 表达

三.XPath的基本语法

1.选择节点:

使用斜线 / 或者反斜线 ../ 来选择节点。例如:

(1)/bookstore:选择根节点 bookstore。

(2)../bookstore:选择当前节点的父节点 bookstore。

(3)/bookstore/book:选择 bookstore 节点下的所有 book 节点。

(4)../bookstore/book:选择当前节点的祖父节点 bookstore 下的所有 book 节点。

2.选择属性:

在节点选择表达式后,使用 符号来选择节点的属性。例如:

//book[@id='101']/title:选择 id 为 "101" 的书的标题。

3.选择子节点:

使用 // 符号来选择当前节点的所有子节点。例如:

//book:选择所有 book 节点。

4.选择父节点:

使用 .. 符号来选择当前节点的父节点。例如:

book/../bookstore:选择 book 节点的父节点 bookstore。

5.选择兄弟节点:

使用 // 符号来选择当前节点的所有兄弟节点。例如:

//book:选择所有兄弟 book 节点。

6.选择祖先节点:

使用 ancestor 轴来选择当前节点的祖先节点。例如:

ancestor::bookstore:选择当前节点的祖先 bookstore 节点。

7.选择后代节点:

使用 descendant 轴来选择当前节点的后代节点。例如:

descendant::book:选择当前节点的所有后代 book 节点。

8.使用函数:

XPath 提供了一系列函数,用于操作节点和属性。例如:

(1)count(//book):计算所有 book 节点的数量。

(2)sum(//book/price):计算所有 book 节点的 price 属性之和。

(3)substring(//book/title, 1, 5):提取所有 book 节点的标题的前 5 个字符。

9.使用运算符:

XPath 提供了一些运算符,用于组合路径表达式或对节点进行操作。例如:

(1)//book[title/text()='harry potter']:选择标题包含 "harry potter" 的 book 节点。

(2)//book[price>100]:选择价格大于 100 的 book 节点。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值