Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/05/2010, 01:53
MarioCares
 
Fecha de Ingreso: enero-2010
Ubicación: Iquique
Mensajes: 16
Antigüedad: 14 años, 3 meses
Puntos: 1
Leer XML (generado en Servlet) con JavaScript

Buenas:

He buscado por media web y no encuentro solución. El tema es el siguiente:

Genero una respuesta XML desde un servlet:

Código java:
Ver original
  1. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  2.     throws ServletException, IOException {
  3.        response.setContentType("text/xml");
  4.        response.setHeader("Cache-Control", "no-cache");
  5.        PrintWriter out = response.getWriter();
  6.        out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
  7.        out.write("<personas>");
  8.        out.write("<persona code=\"001\">");
  9.        out.write("<nombre>Marito</nombre>");
  10.        out.write("<apellido>Cares</apellido>");
  11.        out.write("<edad>20</edad>");
  12.        out.write("<sexo>M</sexo>");
  13.        out.write("</persona>");
  14.        out.write("</personas>");
  15.  
  16.        response.sendRedirect("/ConectaBD/lectorXML.jsp");
  17.     }

Y quiero leer esos valores (por el momento ficticios... en realidad los llamo desde una BD) con JavaSript para llenar cierta tabla o algo.

El problema que tengo es que... no se como leer. Como rescatar el archivo XML generado para luego parsearlo.

Tengo entendido que es de esta manera (lo que tengo en lectorXML.jsp):
Código Javascript:
Ver original
  1. function leyendoXML(){
  2.                 if (window.DOMParser){
  3.                     try{
  4.                         parser=new DOMParser();
  5.                         xmlDoc=parser.parseFromString(text,"text/xml");
  6.                         /*Y en este momento se cuelga, porque no tengo la variable "text", que debería ser la respuesta que me envía el servlet*/
  7.                     }catch(e){
  8.                         alert(e.toString());
  9.                     }
  10.                 }else /* Internet Explorer*/{
  11.                   xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  12.                   xmlDoc.async="false";
  13.                   xmlDoc.loadXML(text);
  14.                 }
  15. /*Ahora escribo los datos con cierta lógica*/

Lo más cercano a una solución que he encontrado, es [URL="http://www.java-tips.org/java-me-tips/midp/sending-data-to-servlet-and-getting-the-response.html"]esta[/URL] pero, no me sirve.

Muchas Gracias!