Para detectar si existe el nodo tambíen podrías verificar la propiedad length de la colección:
Código PHP:
alert(responseXML.getElementsByTagName('error').length);
Para obtener el valor de un atributo, podrías usar getAttribute:
Código PHP:
alert(responseXML.getElementsByTagName('error')[0].getAttribute('tipo'));
Y para obtener el valor del nodo, lo que considero más fiable es la propiedad data:
Código PHP:
alert(responseXML.getElementsByTagName('error')[0].firstChild.data);
El problema que le veo en este caso en particular es que tenés espacios en tu xml, que navegadores como Firefox consideran un nodo
(responseXML.getElementsByTagName('error')[0].firstChild.nodeType seía igual a 3 y el valor de data no sería el que
estás esperando). Pero si antes eliminás los espacios en blanco en tu xml, podrías usar data sin problemas en
cualquier navegador.