Using a rercursively called template, it is no problem to build the tree-like result.
However, I can't find a way to shade every other row.
Coming from c++ I my first solution would be: a counter. However that seems impossible and, even if it is possible, doesn't seem to be the way to do it in XSLT.