There is a Dynamic Router you can use. It can route to an endpoint, an it will re-evaluate an expression each time. Mind that you need to return null for the expression, when you are done.
And btw we will possible in the future look at making the loop be like a while loop instead. But for now its a fixed for loop.
I did something similar with this by splitting the incoming XML on an XPath to make multiple messages, then passing those individual messages onto another route that does something to each one: