..的核心作用是选中当前节点的直接父节点,如//span/..可选中span的父节点li,连续使用可向上多级跳跃,常用于灵活定位。

XPath中那个看似简单的
..
说白了,
..
cd ..
..
我们来看个例子,假设有这么一段HTML结构:
<div class="container">
<ul id="myList">
<li>Item 1</li>
<li class="active">Item 2<span> (current)</span></li>
<li>Item 3</li>
</ul>
</div>如果你当前选择的节点是那个
<span>
//span
<span>
<li>
//span
..
完整的XPath表达式会是这样:
//span/..
这个表达式会精确地选中那个
<span>
<li class="active">Item 2<span> (current)</span></li>
<li>
再比如,如果你当前选中了
<li>Item 1</li>
<ul>
//li[text()='Item 1']/..
<ul id="myList">...</ul>
..
..
..
parent::
很多人会问,既然有
..
parent::
..
parent::node()
parent::node()
..
但它们之间还是有点细微的差别,虽然在实际应用中你可能很少用到。
parent::
parent::div
div
..
举个例子: 如果你有这样的结构:
<root>
<data>
<item>
<value>123</value>
</item>
</data>
</root>如果你在
value
./..
item
./parent::*
item
./parent::data
value
data
..
所以,通常我们为了简洁和效率,都会优先使用
..
parent::
..
parent::房间类型
..
在复杂的文档结构里,
..
1. 连续使用..
..
<span>
<div>
//span/../..
<span>
<li>
<li>
<ul>
<ul>
<div>
<span>
<li>
<ul>
<div>
//span/../../..
span
div
<div class="container">
<ul id="myList">
<li class="active">Item 2<span> (current)</span></li>
</ul>
</div>如果当前节点是
<span>
//span/..
<li>
//span/../..
<ul>
//span/../../..
<div>
2. 结合谓语进行条件筛选:
..
<span>
<li>
<li>
class
active
//span[text()=' (current)']/../li[@class='active']
(current)
<span>
<li>
../li[@class='active']
../
<li>
li
<li>
<li>
//span[text()=' (current)']/..[@class='active']
<span>
@class='active'
3. 向上跳跃后再横向导航: 这是非常常见的用法。你从一个子节点向上跳到它的某个祖先节点,然后从那个祖先节点再向下或者横向寻找其他兄弟节点。 比如,从
<span>
<li>
<ul>
<ul>
<li>
//span/../../li
<span>
<li>
<li>
<ul>
<ul>
<li>
高效使用
..
..
..
尽管
..
1. 误解..
..
../..
..
ancestor::
ancestor::div
div
ancestor::div[1]
div
2. 路径变得过长,难以阅读和维护: 当层级很深时,你可能会写出
../../../../..
..
div
div
//div[@id='uniqueContainer']/ul/li/span/..
span
span
li
uniqueContainer
3. 对当前上下文(context node)的误判: 尤其是在进行链式操作时,很多人会搞不清当前
..
//div/p/..
..
p
p
div
//div/p[text()='hello']/../span
..
hello
p
div
div
span
理解这些常见问题,并掌握相应的应对策略,能让你在XPath的海洋中游刃有余,更高效、更准确地定位到你想要的元素。
以上就是XPath的..语法如何选择父节点?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号