I'm having a problem with some results from an XQueryExpression.  Basically, If I use .evaluate(DQC) to get the results it seems to work.  If I use .iterator(DQC) it only gives the first result it comes across.

My code is below.  The setup is the same for both snippets 1 and 2, and the sample xml is in snippet 3.  If I use the query of "//b", snippet 1 will give me 2 results.  That is what I expect.  If it use that same query for snippet 2, I get a single result, and it is always the first one in the xml file.  Why is this the case?  Are my expectations off?

======= snippet 1 =================
for(Object o : exp.evaluate(DQC)){
  System.out.println(o);
}
======= snippet 2 =================
SequenceIterator iter = exp.iterator(DQC);
while (true) {
  Item item = iter.next();
  if (item == null) {
    break;
  }
  System.out.println(query + " - " + iter.position() + " - " + item.getStringValue());
}
======= snippet 3 =================
<a>
  <b>3</b>
  <b>5</b>
</a>