在具有特定类的li之前选择ul中的所有li

时间:2016-11-07 07:14:28

标签: python xpath

好的,我的html代码是ul =>李。我正在选择ul中的所有li,但最近我注意到还有一些动态生成的我不需要。所以我想在1 li之前选择所有的li,而不是选择一个特定的li之后的所有li。

<ul id="ListViewInner">
    <li id="item2cb555b5f1" _sp="p2045573.m1686.l0" class="sresult lvresult clearfix li" r="1"></li>
    <li id="item3ad18af5b3" _sp="p2045573.m1686.l0" class="sresult lvresult clearfix li" r="2"></li>
    <li id="item3ad18ab9f4" _sp="p2045573.m1686.l1024" class="sresult lvresult clearfix li" r="3"></li>
    <li class="lvresult clearfix li"></li>
    <li id="item2119fca550" _sp="p2045573.m1686.l1024" class="sresult lvresult clearfix li" r="1"></li>
    <li id="item3ad1301a0d" _sp="p2045573.m1686.l1032" class="sresult lvresult clearfix li" r="2"></li>
</ul>

就像上面的代码一样,我希望在这个li之前得到所有的li = class =&#34; lvresult clearfix li&#34;出现。

目前我的xpath很简单,就像这样:

//ul[@id="ListViewInner"]/li

请告诉我是否可以使用xpath实现,还是应该使用css。

1 个答案:

答案 0 :(得分:0)

您可以使用following-sibling轴来实现此目的:

//ul[@id="ListViewInner"]/li[following-sibling::li/@class='lvresult clearfix li']

<强> demo

输出

<li id="item2cb555b5f1"
    _sp="p2045573.m1686.l0"
    class="sresult lvresult clearfix li"
    r="1"/>
<li id="item3ad18af5b3"
    _sp="p2045573.m1686.l0"
    class="sresult lvresult clearfix li"
    r="2"/>
<li id="item3ad18ab9f4"
    _sp="p2045573.m1686.l1024"
    class="sresult lvresult clearfix li"
    r="3"/>