Foros del Web » Programando para Internet » Javascript » Frameworks JS »

objecto.responseXML no me va

Estas en el tema de objecto.responseXML no me va en el foro de Frameworks JS en Foros del Web. Hola, llevo toda la mañana porque no me va el responseXML. A ver si me pueden echar un cable. Tengo respuesta.php que contiene: Código: <message> ...
  #1 (permalink)  
Antiguo 02/02/2006, 06:50
 
Fecha de Ingreso: febrero-2006
Mensajes: 2
Antigüedad: 18 años, 2 meses
Puntos: 0
objecto.responseXML no me va

Hola, llevo toda la mañana porque no me va el responseXML. A ver si me pueden echar un cable.

Tengo respuesta.php que contiene:
Código:
<message>
HOla
</message>
Entonces, Solo quiero mostrar lo que esta dentro de los tags message. Inicializo un XMLHttpRequest, hace sus estados correctamente y llega la función principal dónde le digo lo que tiene que hacer:

Código:
    function onReadyState(){
        var ready=req.readyState;
        var data=null;
        if (ready == 4){
            data = req.responseXML.documentElement;
            var message = data.getElementsByTagName('message')[0].firstChild.data;
            toConsole(message);

        }else{
            data="loading... ["+ready+"]";
            toConsole(data);
        }
        
    }
la funcion toConsole hace que el navegador muestre el texto pasado.

En el navegador me sale:
loading... [1]
loading... [1]
loading... [2]
loading... [3]

Se queda en blanco en el estado 4.

En cambio si no uso responseXML sino responseText:

Código:
    function onReadyState(){
        var ready=req.readyState;
        var data=null;
        if (ready==READY_STATE_COMPLETE){
            data = req.responseText;
            toConsole(data);
        }else{
            data="loading... ["+ready+"]";
            toConsole(data);
        }
        
    }
Me va de perlas, me saca:
loading... [1]
loading... [1]
loading... [2]
loading... [3]
<message> HOla </message>

La cuestion es que quiero trabajar con XML y no hay manera de que me funcione, he encontrado ejemplos en google, que usaban DOM, otros que usaban easyXML... pero no hay manera, los intento aplicar al codigo y que va.

A ver si me podeis echar un cable, teneis algun pequeño ejemplo que vaya bien? porque es que yo ya no se que provar, y todo lo que he provado en XML la respuesta ha sido blanca.

Os pasteo el codigo entero por si a caso:

Código:
<html>
<head>
<script type='text/javascript'>
    var req=null;
    var console=null;
    var READY_STATE_UNINITIALIZED=0;
    var READY_STATE_LOADING=1;
    var READY_STATE_LOADED=2;
    var READY_STATE_INTERACTIVE=3;
    var READY_STATE_COMPLETE=4;
    
    function sendRequest(url,params,HttpMethod){
        req=initXMLHTTPRequest();
        if (req){
            req.onreadystatechange=onReadyState;
            req.open("POST",url,true);
            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            req.send(params);
        }
    }
    
    function initXMLHTTPRequest(){
        var xRequest=null;
        if (window.XMLHttpRequest){
            xRequest=new XMLHttpRequest();
        } else if (window.ActiveXObject){
            xRequest=new ActiveXObject("Microsoft.XMLHTTP");
        }
    return xRequest;
  }

    function onReadyState(){
        var ready=req.readyState;
        var data=null;
        if (ready==READY_STATE_COMPLETE){

            data = req.responseText;
            toConsole(data);

          /*
            data = req.responseXML.documentElement;
            var message = data.getElementsByTagName('message')[0].firstChild.data;
            toConsole(message);
            */
        }else{
            data="loading... ["+ready+"]";
            toConsole(data);
        }
        
    }
    
    function toConsole(data){
        if (console!=null){
            var newline=document.createElement("div");
            console.appendChild(newline);
            var txt=document.createTextNode(data);
            newline.appendChild(txt);
            }
    }
    
    window.onload=function(){
        console=document.getElementById('console');
        sendRequest("resposta2.php");
    }
    
</script>
</head>
<body>
<div id='console'></div>
</body>
</html>
Gracias por su atención
  #2 (permalink)  
Antiguo 10/02/2006, 09:07
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
supongo que en firefox si te va no? como aqui

http://www.forosdelweb.com/f127/error-con-explorer-352338/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:28.