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

Recibir texto de un xml y almacenarlo en un String

Estas en el tema de Recibir texto de un xml y almacenarlo en un String en el foro de Frameworks JS en Foros del Web. Hola Tengo el siguiente problema. Tengo un xml, que supongamos tiene esto de contenido: <servidor> <respuesta>siExiste</respuesta> </servidor> Me gustaría poder leer ese "texto" que está ...
  #1 (permalink)  
Antiguo 26/10/2009, 11:27
 
Fecha de Ingreso: marzo-2008
Ubicación: Zacatecas
Mensajes: 45
Antigüedad: 16 años, 1 mes
Puntos: 1
Recibir texto de un xml y almacenarlo en un String

Hola

Tengo el siguiente problema. Tengo un xml, que supongamos tiene esto de contenido:

<servidor>
<respuesta>siExiste</respuesta>
</servidor>

Me gustaría poder leer ese "texto" que está en el xml y dejar ese contenido en una variable de tipo string, para despues, comparar ese valor con un if.

Ahorita tengo el siguiente codigo, pero no funciona.

Código:
// ejecutado automaticamente cuando un mensaje es recibido desde el servidor
    function useHttpResponse()
    {
      // se ejecuta salo si la transaccion se ha completado
      if (http.readyState == 4)
      {
        // estatus de 200 indica que la transaccion se ha completado correctamente
        if (http.status == 200)
        {
          // extraemos el XML recuperado del servidor
          xmlResponse = http.responseXML;
          // obtenemos el "document element" (el elemento raiz) de la estructura XML
          xmlDocumentElement = xmlResponse.documentElement;
          // obtenemso el mensaje de texto, que esta en el primer hijo de
              // el "document element"
          var respuesta = xmlDocumentElement.getElementsByTagName("respuesta")[0].childNodes[0].nodeValue;
          alert(respuesta);
          // actualizamos la pantalla del usuario usando los datos recibidos del servidor
          if (respuesta=="siExiste")
          {
              alert("El usuario que tecleo ya existe. Escriba un nombre diferente");
              document.frmalta.txtnombre_usuario.value="";
          }
          else
             alert("No");
          // reiniciar secuencia
          //setTimeout('proceso()', 1000);
        }
        // un estatus HTTP distinto de 200 indica que ha habido un error
        else
        {
          alert("Ha habido un problema al acceder al servidor: " + http.statusText);
        }
      }
   }

¿como lo puedo hacer?. Muchas gracias por adelantado
  #2 (permalink)  
Antiguo 27/10/2009, 00:19
 
Fecha de Ingreso: mayo-2008
Ubicación: En la guarida del mal, tratando de conquistar el mundo
Mensajes: 174
Antigüedad: 16 años
Puntos: 2
Respuesta: Recibir texto de un xml y almacenarlo en un String

Yo también quiero saber lo mismo xD.

Aunque si tenés que salir de un apuro, hastaque alguien responda, podés recibir los datos por atributos:

Código:
<servidor>
<respuesta existe="si"></respuesta>
</servidor>
Código:
xmlDocumentElement.getElementsByTagName("respuesta")[0].getAttribute("existe");
Y así lees el atributo, pero el texto no tengo idea :S.

EDITO: Ya encontré la respuesta al tema del texto de los nodos, que vos lo estas haciendo bien, ya que al parecer son como childs de los nodos, así que ni idea porque te da error. Con el código completo quizás te podriamos ayudar mas. Por otro lado, no funciona o te da error? Es decir, sale algo en la consola de errores?

Última edición por ZequeZ; 27/10/2009 a las 00:28 Razón: EDITO
  #3 (permalink)  
Antiguo 27/10/2009, 09:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Recibir texto de un xml y almacenarlo en un String

No entendí muy bien, pero si lo que quieres es obtener el XML completo como texto, sólo tienes que usar la propiedad responseText del objeto XMLHttpRequest.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 27/10/2009, 10:02
 
Fecha de Ingreso: marzo-2008
Ubicación: Zacatecas
Mensajes: 45
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Recibir texto de un xml y almacenarlo en un String

Por si a alguien le sirve, ya entontre el error.

Mi codigo javascript si esta bien, donde estaba el error, era al generar el xml del lado del servidor.

Estoy trabajando con jsp, y tenia al siguiente codigo para generar el xml.

Código:
<%@ page language="java" session="true" %>
<%@ page import="saaf.*" %>
<%@ page import="java.sql.*" %>
<%   
   response.setHeader("Content-Type", "text/xml;charset=utf-8");
   response.setHeader("Expires", "Mon, 01 Jan 2007 01:00:00 GMT");
   response.setHeader("Cache-Control", "must-revalidate");
   response.setHeader("Cache-Control", "no-cache");
   String usuario="";
   int existe=0;
   if (request.getParameter("usuario")!= null)
       usuario=request.getParameter("usuario");
   // genera el header XML
   //out.println("<?xml version='1.0' encoding='UTF-8' standalone='yes'?>");
   // crea el elemento <respuesta>
   out.println("<respuesta>");
   DbConnection conn = new DbConnection();
   Statement st = conn.getConnection().createStatement();
   ResultSet rs=st.executeQuery("select ID_USUARIO from usuarios where NOMBRE_USUARIO='"+usuario+"'");
   if (rs.next())
      existe=1;
   else
      existe=0;
   st.close();
   rs.close();
   conn.desconectar();
   if (existe==0)
      out.println("noExiste");
   else
      out.println("siExiste");
   out.println("</respuesta>");
%>
El error esta al escribir con el println "out.println("noExiste");" , ya que al escribir esto, escribe un el texto "noExiste" pero ademas le agrega un salto de linea, entonces en realidad lo que estoy escribiendo es noExiste+SaltodeLinea.

Se soluciono, cambiando todos los println por solo print.

Saludos.
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 15:46.