使用XPath匹配节点文本后查找兄弟

时间:2016-06-28 10:28:37

标签: html xpath

考虑以下HTML。

<div class="block table__responsive-body" id="review_2">
    <div class="row">
        <div class="small-4 columns hide-for-large-up">
            <strong>Betyg</strong>
        </div>
        <div class="small-8 columns table__responsive-body-content">5<p>
            <strong>Skapades den: </strong>28 jun 09:44</p>
        </div>
    </div>

    <div class="row">
        <div class="small-4 columns hide-for-large-up">
            <strong>Produkt</strong>
        </div>
        <div class="small-8 columns table__responsive-body-content">
            <a href="/products/9">Volvo V50</a>
        </div>
    </div>

    <div class="row">
        <div class="small-4 columns hide-for-large-up">
            <strong>Recensent</strong>
        </div>
        <div class="small-8 columns table__responsive-body-content">
            <a href="/users/24">John Doe</a>
        </div>
    </div>
</div>

我想找到包含带有给定文本的div节点的任何前一个兄弟div的后续strong节点。

例如:给定要查找的<strong>节点文本为Betyg。我希望它能回归:

<div class="small-8 columns table__responsive-body-content">5<p>
    <strong>Skapades den: </strong>28 jun 09:44</p>
</div>

1 个答案:

答案 0 :(得分:1)

以下XPath将按您的描述执行:

//div[strong/text()[contains(., 'Betyg')]]/following-sibling::div

查找包含div子元素的strong,其中包含文本Betyg。然后找到以下兄弟div