Hola:
Me alegra que uses xml, ya que existe la costumbre de leer ajax con responseText y no responseXML que es lo que supongo que usas...
Un problema posible es que no existan nodos hijos, entonces deberías chequearlo con hasChildNodes()...
if (nodoXML.hasChildNodes()) respuesta = nodoXML.firstChild.nodeValue;
else respuesta = "";
He descubierto que para nodos que puedan estar vacíos y no sean de mucho contenido (por ejemplo que no tengan saltos de línea), es mejor poner esos contenidos en atributos.
Fíjate en estos foros en un tema que inicié hace algún tiempo (tal vez un par de meses) sobre destripar objetos Ajax... empecé a poner concusiones, y lo que te estoy comentando es una de ellas.
Saludos