我有一个包含以下内容的 HTML 页面:
...
<div class='zxc'>
<div class='abc'>
<div class='one'>
<p class='child'>
<b>Hello, Jack!</b>
</p>
<div class='child'>
<p>Lorem Ipsum...</p>
<a href='/'>Bye, Kate!</a>
</div>
</div>
<div class='two'>
<p class='child'>
<b>Hello, Jack!</b>
</p>
<div class='child'>
<p>Lorem Ipsum...</p>
<a href='/'>Bye, Kate!</a>
</div>
</div>
<div class='three'>
<div class='child1'>
<div class='child2'>
<p class='child3'>
<b class='child4'>Hello, Jack!</b>
</p>
</div>
</div>
<div class='child1'>
<p>Lorem Ipsum...</p>
<a href='/'>Bye, Kate!</a>
</div>
</div>
</div>
</div>
...
从中,使用XPath,我想获取包含“ Hello ”和“ Bye ”的元素的父级,即 , div.one,div.two但 NOT div.three(因为一个节点比另一个节点高 2 个以上节点), notdiv.abc和 not div.zxc(也就是说,第一个父母)。
我在您可以使用的堆栈上阅读
.//*[contains(text(), 'Hello')]/ancestor::*[.//*[contains(text(), 'Bye')]][1],
但它也适用于元素div.three,我真的不想要。
搜索时是否可以以某种方式限制节点之间“高度”的差异?
我想出了这个问题,如果它突然对某人有用 - 我会很高兴: