Innanzitutto, potresti considerare di eseguire la mappatura xml all'interno di Postgres stesso utilizzando il funzioni . Due vantaggi di ciò sono che la funzionalità di astrazione dei dati rimane unita e che Postgres è molto meglio ottimizzato per eseguire questa attività in modo efficiente rispetto a php. Se devi apportare modifiche di livello superiore all'xml, xslt dovrebbe fare il trucco.
Per quanto riguarda il problema che citi, non so se ti riferisci ai dati nella tabella che hanno una relazione gerarchica?