How to ignore first element in xpath

后端 未结 2 1928
耶瑟儿~
耶瑟儿~ 2020-12-29 19:53

How can I ignore first element and get rest of the elements?

相关标签:
2条回答
  • 2020-12-29 20:22

    if you want to ignore the "first" element only then:

    //li[position()>1]
    or
    (//a)[position()>1] 
    

    if you want the last only (like your example seems to suggest):

    //li[last()]
    or
    (//a)[last()]
    
    0 讨论(0)
  • 2020-12-29 20:23

    You can use position() to skip over the "first" one, but depending on which element you are interested in and what the context is, you may need a slight variation on your XPATH.

    For instance, if you wanted to address all of the li elements and get all except the first, you could use:

    //li[position()>1]
    

    and it would work as expected, returning all of the li elements except for the first.

    However, if you wanted to address all of the a elements you need to modify the XPATH slightly. In the context of the expression //a[position()>1] each one of the a elements will have a position() of 1 and last() will evaluate to true. So, it would always return every a and would not skip over the first one.

    You need to wrap the expression that selects the a in parenthesis to group them in a node-set, then apply the predicate filter on position.

    (//a)[position()>1]

    Alternatively, you could also use an expression like this:

    //a[preceding::a]
    

    That will find all a elements except the first one (since there is no a preceding the first one).

    0 讨论(0)
提交回复
热议问题