XMLListCollection, Descendants function is very important!

I've been struggling today with a minor issue of making all of the children in a complex XML structure go through a repeater. The first step is to create an XMLListCollection which can then be used as a dataprovider for a repeater object. But if you simple do this:
menuCollection:XMLListCollection = new XMLListCollection(menu.children());
You're only going to see the elements at the top of the list. At first I was thinking "well crap, now I have to go flatten my XML or flatten the collection somehow." But then I always remember, the simplest solution is the best and if there isn't a simple solution that I can think of, search the docs! And then I discovered the decendants function which will go all the way down to the very last item in a XML tree and return them all as a list to your collection. This means that a repeater will repeat through all of them, and not just the parent nodes.
menuCollection:XMLListCollection = new XMLListCollection(menu.descendants());