du hast hier nicht mehr einen 'flachen' baum (2-dimensional), welcher sich natürlich einfach 1:1 umsetzen läßt, sondern schon eine ebene mehr.
wie mike schon sagte, gibts hierfür 2 möglichkeiten:
1. geschachtelte schleifen (über db)
oder
2. eine struktur
die 1. möglichkeit sieht einfacher aus, kostet aber mehr db performance. sinnvoller wäre die 2. möglichkeit.
hierfür müssen die beiden tabellen verknüpft werden.
dann beinhaltet jeder datensatz den vollen pfad mit all seinen elementen.
in der schleife über die datensätze muss dann der jeweilige 'gruppenwechsel' (ebenen) ermittelt werden um die entsprechende xml auszugeben.
man kann aber auch in dieser schleife erst nur ein baum-array zusammenbasteln und dieses anschließend durchlaufen. dann ergibt sich der gruppenwechsel automatisch.