Saludos a todos. Seguro el tema es muy frecuente y muy básico, pero juro que he buscado e intentado toda la tarde y no he logrado dar con una solución práctica.
El problema es simple. Mediante la clase Request de Mootools obtengo un xml de la siguiente forma:
Código XML:
Ver original<?xml version="1.0" encoding="UTF-8"?>
<response>
<error tipo="1">
<![CDATA[Error en la base de datos]]>
</error>
<html>
<![CDATA[<div class="error">No se pudo votar</div>]]>
</html>
<js>
<![CDATA[<script>....</script>º]]>
</js>
<redirect>www.algo.com</redirect>
</response>
En resumen, lo que deseo hacer es, una vez obtenido este XML, poder en priemra instancia detectar si existe el tag <error>, lo cual indica que el proceso falló. Si existe, debo entonces obtener el valor de su atributo "tipo", y luego el contenido del nodo, para definir como proceder para cada tipo de error. Luego, lo mismo con los diferentes nodos posibles, como <html> o <redirect>.
Actualmente tengo esto (he recortado muchas partes que no importan ahora:
Código Javascript
:
Ver originalnew Request({
method: 'get',
url: '/ajax',
data: {'id' : 561, 'request' : 'cap.votar' },
onSuccess: function(responseText, responseXML) {
// Aqui es donde debo actuar. Deseo usar responseXML para obtener la información resultante del request
}
}).send();
Lo que hasta ahora he conseguido hacer, leyendo por aqui y por allá, es esto:
Detectar si un nodo existe o no:
Código Javascript
:
Ver originalif(responseXML.getElementsByTagName('error')[0]) {
// Existe
} else {
// No existe
}
Obtener el valor del atributo tipo:
Código Javascript
:
Ver originalresponseXML.getElementsByTagName('error')[0].attributes.getNamedItem("tipo").nodeValue
Y finalmente, para leer el valor del nodo, según lo que leí, es diferente para IE y el resto:
Código Javascript
:
Ver original// IE
responseXML.getElementsByTagName('error')[0].text
// No IE
responseXML.getElementsByTagName('error')[0].textContent
Básicamente esas son las 3 cosas que deseo lograr. La duda aquí es, que como evidentemente no manejo bien este tema de XML y javascript, tal vez lo estoy haciendo de un modo no muy adecuado, por lo que me gustaría que me ayuden a definir cuál sería la mejor manera de tratar esto, o si necesariamente hay que colocar código específico para distintos navegadores.
No sé si tenga que ver algo, pero como coloco en el título, el XML lo traigo usando Mootools.
Gracias!