首页 > 解决方案 > 如何获得此 xpath 的第二个值?

问题描述

下面是html。

<div class="list-items tab-pane fade active show" ng-class="type=='pay'?'show active':''" tabindex="1" id="pay-bills">

    <div ng-repeat="item in BillList.Result.categorizedBillNickBene" class="ng-scope">
        <h2 class="head ng-binding" ng-show="filtered.length!=0">Electricity Bill Payment</h2>
    </div>

    <div ng-repeat="item in BillList.Result.categorizedBillNickBene" class="ng-scope">
        <h2 class="head ng-binding" ng-show="filtered.length!=0">Gas Bill Payment</h2>
    </div>

</div>

我想获得第二个 h2 值,即“Gas Bill Payment”。我把 xpath 写成

//div[@id='pay-bills']//div//h2[@class='head ng-binding'][2]

问题是我无法使用“[2]”获得第二个值。尽管当我插入“[1]”时,我得到了两个值。

标签: htmlxpath

解决方案


为什么这不起作用:

//div[@id='pay-bills']//div//h2[@class='head ng-binding'][2]

您正在寻找h2一个位置等于 2 的h2元素。样本数据中的所有元素都位于第一个 (1) 位置。

您可以使用@chrisis 提出的解决方案,也可以使用:

(//div[@id='pay-bills']/div/h2)[2]/text()

用于()指定您希望用 . 括起来的 XPath 的第二个显示结果()

一定//要从你的表达式中删除不必要的(应该是/从第二个开始div并且h2是子元素)。


推荐阅读