Hola!
Estoy haciendo pruebas de generar respuestas XML inválidas para ver cómo puedo realiza el tratamiento en la parte cliente. El problema que he observado es que el FFOX y el IE lo tratan de manera diferente.
La respuesta corresponde a un XML mal formado, en el que el elemento raíz se abre y se cierra con nombres diferentes.
En el caso del IE, encierro todo el tratamiento del XML en un try-catch, y cuando intento acceder a responseXML me salta la excepción correspondiente.
Sin embargo, con FFox no salta ninguna excepción. Consultando la consola de error se observa el mensaje de error, pero el código cliente javascript ni se entera. En este caso, la solución ha sido leer un atributo del elemento raíz. Este atributo devuelve un valor null:
var xmlDoc = obj.responseXML;
var xmlRoot = xmlDoc.documentElement;
var codi = xmlRoot.getAttribute('codi');
if (codi == null) {
... si pasamos por aquí "suponemos" que el XML es inválido
}
Pues eso... mi duda es si hay alguna manera mejor y sobre todo más standard para detectar estos casos.
Gracias.