En tu swi no esperas a que el XML se cargue ni referencias correctamente el objeto XML. Además el archivo XML desde mi punto de vista necesitaría algún CDATA en los párrafos de texto, no se...
tendrías que cambiar
CÓDIGO
this.firstChild.childNodes[0].attributes.nombre;
por
CÓDIGO
catalogue.firstChild.childNodes[0].attributes.nombre;
si no me equivoco. Pero siempre que compruebes que se realiza la carga del objeto xml.
Además el XML deja bastante que desear en cuanto a estructura. Buscate algún buen tuto con info al respecto.
Adjunto swi
Salu2