XPath 轴

在这里插入图片描述

### XPath 定位概述 XPath 提供了一种强大而灵活的方法来遍历 XML 或 HTML 文档树结构并选择特定节点。定义了相对于当前节点的选择方向,允许访问不同类型的关联节点,如父级、子级、前序兄弟或后代等[^1]。 ### 主要的 XPath 及其功能 - **child**: 选取当前节点的所有子元素。 - **parent**: 选取当前节点的父节点。 - **ancestor**: 选取当前节点的所有祖先节点(即父节点、祖父节点等)。 - **descendant**: 选取当前节点下的所有后代节点,不限于直接子代。 - **following-sibling**: 选取位于当前节点之后且同属一个父节点的所有兄弟节点。 - **preceding-sibling**: 选取位于当前节点之前且同属一个父节点的所有兄弟节点。 - **attribute**: 选取当前节点的所有属性节点。 ### 实际应用案例分析 假设有一个简单的HTML文档片段如下: ```html <div class="container"> <h2>标题</h2> <p id="first">第一个段落。</p> <ul> <li>列表项一</li> <li>列表项二</li> </ul> <p id="second">第二个段落。</p> </div> ``` #### 示例 1: 定位 `id` 属性等于 `"first"` 的 `<p>` 标签内的文本内容 表达式:`//p[@id='first']/text()` 解析过程: - `/`: 表示根路径; - `//p`: 查找所有的 `<p>` 元素; - `[@id='first']`: 进一步筛选具有指定 ID 值的 `<p>` 元素; - `/text()`: 获取该元素内部的文字信息。 #### 示例 2: 找到包含字符串 “标题” 的任何标签,并获取其后的下一个兄弟 `<p>` 标签的内容 表达式:`.//*[.='标题']/following-sibling::p[1]/text()` 这里使用到了通配符 `*` 来匹配任意标签名;`= '标题'` 判断节点值是否相等;最后利用 `following-sibling::p[1]` 取得紧随目标节点的第一个 `<p>` 同辈节点。 #### 示例 3: 访问某个具体类名为 `.container` 下面的所有子孙 `<li>` 元素 表达式:`//*[@class='container']//li` 此句先找到拥有给定 CSS 类名称的容器对象,再在其范围内查找全部符合条件的项目条目。 这些例子展示了如何运用各种来构建有效的查询语句,在复杂的 DOM 结构中精确定位所需的数据位置[^3]。 ### 关键概念总结 为了更好地理解和记忆上述知识点,可以将其归纳为以下几个方面: - 明确理解每种的作用范围以及适用场景; - 掌握基本语法格式,特别是当涉及到多层嵌套或者组合条件时; - 多加练习编写实际可用的选择器模式,积累经验提高效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如玉少年-_-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值