Pour mettre en forme un document XML et le présenter sur le web en tant que document html, le plus simple à mon sens est d'utiliser XSLT.
Il faut ensuite faire appel à un moteur XSL pour faire les transformations. Ma préférence va à la Libxslt qui est une implémentation en C de XSLT 1.0. J'utilise ensuite une interface en perl de la librairie Lixslt à travers le module XML::LibXSLT.