Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   responseXML.getElementsByTag() no funciona (http://www.forosdelweb.com/f127/responsexml-getelementsbytag-no-funciona-441022/)

karide 07/11/2006 07:13

responseXML.getElementsByTag() no funciona
 
Hola mi problema es el siguiente cuando hago:
var x = miajax.responseXML.getElementsByTag('pobla');
x es nulo, no doy encontrado el modo de que funcione con explorer veo que el codigo xml en principio esta bien (http ://w ww.inmueblevirtual.net/ajax/concellosmenu.php?seleccionado=Victor) puesto que devuelve tanto en el navegador como si en lugar de un responseXML hago un responseText:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<xml>
<pobla>
<valor>uno</valor>
<nome>uno</nome>
</pobla>

<pobla>
<valor>dos</valor>
<nome>dos</nome>
</pobla>
</xml>




Espero q alguien pueda ayudarme

zaqpz 09/11/2006 11:24

¿Estás intentando capturar el valor que traen tus nodos? Puede que este ejemplito te sea de utilidad http://www.forosdelweb.com/showpost....4&postcount=13

Saludos.

NzO 09/11/2006 12:25

Si lo generas con php/asp/jsp tienes que especificar la cabecera. Quiza sea eso...

karide 10/11/2006 06:29

Gracias ya lo habia solucionado, el problema era en explorer que no obtiene bien los xml lo arregle con un archivo q encontre en google "copy.xsl".

zyon 17/04/2007 08:33

Re: responseXML.getElementsByTag() no funciona
 
que onda, quisiera retomar este tema io, trato de ver lo que me manda el responseXML con un alert y solo me lo manda vacio, si puedo ver el resultado del reponseXML con un alert?

MaBoRaK 17/04/2007 18:48

Re: responseXML.getElementsByTag() no funciona
 
loading..........

var x = miajax.responseXML.getElementsByTag('pobla');

var x = miajax.responseXML.getElementsByTagName('pobla');

Para ver el XML solo haces, alert(miajax.responseText)


connection closed.

zyon 18/04/2007 07:15

Re: responseXML.getElementsByTag() no funciona
 
si, asi lo puedo ver, pero me el alert sale muy amplio, como si leyera el espacio que ocupa el JAVA y me muestra el XML hasta abajo del alert... intento mandar un alert(ajax.responseXML); pero me lo manda vacio y probe la linea :

var x = ajax.responseXML.getElementsByTagName('campo1');

pero me la manda vacia, entonces no se si el AJAX me recive lo que manda el JSP que crea el AJX presizamente como un Objeto AJAX, mande a llamar directo el JSP y esto me mostro:

Código HTML:

<?xml version="1.0" encoding="ISO-8859-1" ?>
- <datos>
  <campo1>001</campo1>
  <campo2>Josue</campo2>
  <campo3>Informática</campo3>
  <campo4>si</campo4>
  <campo5>no</campo5>
  </datos>

y esta es mi funcion, pero no se que pasa, alguna idea?

Código HTML:

function MostrarConsulta(datos){

        divResultado = document.getElementById('resultado');
        var id=document.getElementById("idm");
        var nom=document.getElementById("nombrem");
        var dep=document.getElementById("deptom");
        var a=document.getElementById("am");
        var b=document.getElementById("bm");
       
        ajax=objetoAjax();
        ajax.open("POST", datos,true);
        //ajax.overrideMimeType("text/xml");
        //ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        ajax.onreadystatechange=function() {
              if (ajax.readyState==4) {
                if(ajax.status==200){
                      var vari = ajax.responseXML;
                      alert(ajax.responseTEXT);
                      alert( typeof(ajax.responseXML) );
                      alert('vari - '+vari+'-');
                      var x = ajax.responseXML.getElementsByTagName("campo1");
                      alert('x - ' + x);
                      //id.value = vari.getElementsByTagName("campo1")[0].childNodes[0].data;
                      //nom.value = vari.getElementsByTagName("campo2")[0].childNodes[0].data;
                      //dep.value = vari.getElementsByTagName("campo3")[0].childNodes[0].data;
                      //a.value = vari.getElementsByTagName("campo4")[0].childNodes[0].data;
                      //b.value = vari.getElementsByTagName("campo5")[0].childNodes[0].data;
                      //window.alert(id+"\n"+nom+"\n"+dep+"\n"+a+"\n"+b);
                      alert('paso');
                }
              }
        }
        ajax.send(null)
}

:'(

MaBoRaK 18/04/2007 08:38

Re: responseXML.getElementsByTag() no funciona
 
loading............


<campo3>Informática</campo3 <-- este es el problema, debes hacerle un specialchars, osea los acentos con &aacute;



connection closed.

zyon 18/04/2007 09:29

Re: responseXML.getElementsByTag() no funciona
 
ok, no havia pensado en eso, pero tambien lo he probado con datos que no me trae caracteres especiales... de hecho ya probe dos casos de usar XML, uno generado con un JSP :

Código HTML:

<%@ taglib uri="WEB-INF/taglibs-dbtags.tld" prefix="sql"%>
<%@ page import = "java.text.*" %>

<%@ include file="../connect.jsp" %>

<sql:connection id="conn">
    <sql:userId><%=ConnUser%></sql:userId>
    <sql:password><%=ConnPass%></sql:password>
    <sql:url><%=ConnUrl%></sql:url>
    <sql:driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</sql:driver>
</sql:connection>

<%
String Tipo=(request.getParameter("tipo")==null)?"":request.getParameter("tipo");
%>


<%if(Tipo!=null){

    if(Tipo.equals("mostrar")){
        String xml="";
        String IDE=(request.getParameter("ide")==null)?"":request.getParameter("ide");

        xml="<?xml version='1.0' encoding='ISO-8859-1'?>";
        xml=xml+"<datos>";%>

    <%--Extraigo el nombre del Usuario Creador  --%>
    <sql:statement id="stmtCrea" conn="conn">
    <sql:query>
        select campo1,campo2,campo3,campo4,campo5 from ajaxprueba where campo1='<%=IDE%>'
    </sql:query>
    <sql:resultSet id="crea">
    <%
        xml=xml+"<campo1>"+crea.getString(1)+"</campo1>";
        xml=xml+"<campo2>"+crea.getString(2)+"</campo2>";
        xml=xml+"<campo3>"+crea.getString(3)+"</campo3>";
        xml=xml+"<campo4>"+crea.getString(4)+"</campo4>";
        xml=xml+"<campo5>"+crea.getString(5)+"</campo5>";
%>

    </sql:resultSet>
    </sql:statement>
    <%
        xml=xml+"</datos>";
        response.setContentType("text/xml");
        out.print(xml);
       
    }
}//Fin de null...%>


<sql:closeConnection conn="conn"/>

pero en ninguno de los dos casos me funciono el responseXML :( que puedo hacer? :'(

MaBoRaK 18/04/2007 12:21

Re: responseXML.getElementsByTag() no funciona
 
loading............


Y porque a otros si les funciona? :p, es tu fracaso contra los exitos de millones jejeje.


connection closed.

zyon 18/04/2007 15:33

Re: responseXML.getElementsByTag() no funciona
 
mm eso no me alienta mucho :(, no cras que no me siento como tonto, pero es que enserio, puedo hacer ejemplos cualquiera con el responseTEXT, pero el miserable responseXML no me da una sola, ni probandolo con algo simple...y ya me siento fustrado, por eso es que ando casi rogando que me ayuden aunque sea con un ejemplo de ustedes en el que esten seguros que funciona y me lo pasen para probarlo io, no es posible que afecte el navegador que tengo o algo mas?

MaBoRaK 19/04/2007 14:54

Re: responseXML.getElementsByTag() no funciona
 
loading........


Bueno, probaste tus ejemplos con firefox y su extension firebug? talvez tu XML está mal parseado, y ahi te dirá que le falta (consola de errores) tambien podras ver si realmente recibes el XML.... o mejor aun SUBELO A UN SERVER Y MOSTRANOS.


connection closed.

zyon 19/04/2007 15:35

Re: responseXML.getElementsByTag() no funciona
 
ya lo resolvi, mi problema era que realmente no ponia de encabezado el <?xml version="1.0" encoding="UTF-8"?> si no como una asignación a una variable, enton ces por eso no me lo tomaba, solo era eso, fue error mio, crei que seria lo mismo si lo poni <%String XML="<?xml version="1.0" encoding="UTF-8"?>";%>, pero en fin, muchas gracias por su tiempo y ayuda!!!


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.