Hallo,
XSLT ist hierfür wirklich die beste Lösung. Allerdings würde ich gleich PHP5 nehmen, da ist der XSL Support schon standardmässig eingebaut. Die API hat sich in dem Bereich total geändert (nur der Aufruf XSL ist natürlich W3C Standard). Zu den neuen Funktionen:
http://www.zend.com/php5/articles/php5-xmlphp.php#Heading17
Doku zu XSL selbst findest Du natürlich in Selfhtml.
Gruss
Marko