How can I ignore first element and get rest of the elements?
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).