Nejprve můžete zvážit provedení mapování xml v samotném Postgresu pomocí dostupného vestavěného funkce . Dvě výhody z toho jsou, že vaše funkce abstrakce dat zůstává pohromadě a že Postgres je mnohem lépe optimalizován pro efektivní provádění tohoto úkolu než php. Pokud musíte provést nějakou vyšší úroveň úpravy xml, xslt by měl stačit.
Pokud jde o problém, který zmiňujete, nejsem si jistý, zda máte na mysli data v tabulce, která mají hierarchický vztah?