I think you can just write the XSL-T to match on . The only way recursion would matter would be if you wanted to retain parent/child relationships. Matching on will be sufficient if your requirement is to map each one to a bullet in an unordered list