首页 > 解决方案 > 根据表兄弟值选择元素

问题描述

假设我有这个 html(忽略标签名称):

<div>
    <card>
        <h2>1</h2>
    </card>
    <footer>
        <p>text 1</p>
    </footer>
</div>

<div>
     <card>
        <h2>2</h2>
    </card>
    <footer>
        <p>text 2</p>
    </footer>
</div>

<div>
    <card>
        <h2>3</h2>
    </card>
    <footer>
       <p>text 2</p>
    </footer>
</div>

我想选择 h2 值为 2 的 p 标签(我将选择带有文本 2 的 p)

如果我使用这个表达式//h2[text()="2"]/../following::footer/p,我会得到 2 个 p 标签。

如何只选择表亲h2值为的 p 标签2

编辑:Robbie Averill 的答案是第一个起作用的,但你应该检查其他答案,它们也非常好。

标签: xpath

解决方案


您可以从h2匹配的内容导航到div包含所需元素的内容,然后footer/p从那里定位元素:

//h2[text()="2"]/../../footer/p

推荐阅读