首页 文章

需要帮助whith xpath查询

提问于
浏览
0

我有这个HTML:

<ul class = "page-numbers"> <li> <a class= "prev page-numbers" href= "..."> prev </a> </ li> <li> <a class= "page-numbers" href= "..."> 1 </a> </ li> ..... <li> <a class= "page-numbers" href= "..."> 20 </a> </ li> <li> <a class= "next page-numbers" href= "..."> next </a> </ li> </ UL>

需要选择包含带有数字的a元素的第一个和最后一个li(不包含文本prev或next)此xpath查询返回我需要的第一个li(包含页码1的li):

//ul[ @class='page-numbers' ]
    /li[
        not(
            a[ contains( @class, 'prev' ) ]
        ) and
        not(
            a[ contains( @class, 'next' ) ]
        ) and
        position() = 1
    ]"

试图获得最后一个li(包含第20页的那个)时遇到问题 . 试过:

//ul[ @class='page-numbers' ]
    /li[
        not(
            a[ contains( @class, 'prev' ) ]
        ) and
        not(
            a[ contains( @class, 'next' ) ]
        ) and
        position() = last()
    ]"

//ul[ @class='page-numbers' ]
    /li[
        not(
            a[ contains( @class, 'prev' ) ]
        ) and
        not(
            a[ contains( @class, 'next' ) ]
        ) and
        last()
    ]"

但它不起作用 . 第一个返回一个空的nodeList,第二个返回一个nodeList,其中包含所有具有数字的li(1-20) . 有人可以帮忙吗?

1 回答

  • 1

    我认为这个XPath可以帮助你:

    //ul/li[not(./a[contains(text(),'next')]) and not(./a[contains(text(),'prev')])][last()] | //ul/li[not(./a[contains(text(),'next')]) and not(./a[contains(text(),'prev')])][1]

    [请,看看它是如何起作用的] [1] [1]:https://i.stack.imgur.com/XQTJ2.png

相关问题