Primero, puede considerar realizar su mapeo xml dentro de Postgres usando el funciones . Dos beneficios de esto son que su funcionalidad de abstracción de datos permanece unida y que Postgres está mucho mejor optimizado para realizar esta tarea de manera eficiente que php. Si tiene que hacer una modificación de nivel superior del xml, xslt debería ser suficiente.
En cuanto al problema que mencionas, no estoy seguro si te refieres a que los datos de la tabla tienen una relación jerárquica.