tags:

views:

31

answers:

2

Hi I have an XML file that's structured like this:

 <foo>
     <bar></bar>
     <bar></bar>
     ...
</foo>

I don't know how to grab a range of nodes. could someone give me an example of an xpath expression that grabs bar nodes 100-200.

+1  A: 

Use:

/*/bar[position() >= 100 and not(position() > 200)]

Do note:

  1. Exactly the bar elements at position 100 to 200 (inclusive) are selected.

  2. The evaluation of this XPath expressions can be many times faster than an expression using the // abbreviation, because the latter causes a complete scan of the tree whose root is the context node. Always try to avoid using the // abbreviation in cases when this is possible.

Dimitre Novatchev
Thanks a lot, worked perfectly
peterJ
A: 
//foo/bar[100 <= position() and position() < 200]
KennyTM