Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/06/2006, 21:06
Avatar de stock
stock
 
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 20 años, 5 meses
Puntos: 53
mira, ahorita no tengo mucho tiempo para explicarte a detalle, pero te pongo un ejemplo de como lo hago yo, asi lo analisas y haces el tuyo!

aqui el XML que recibo del servidor
Código:
<producto>
<msg>Inventario</msg>
<concepto>Medicina x</concepto>
<unitario>25.50</unitario>
<inventario>15</inventario>
<contenido>25</contenido>
<residuo>10</residuo>
<producto>
y asi lo tomo:

Código:
   /**
    * Esta funcion solicita la informacion del producto al servidor
    */
   function getProducto() {
   	   var codigo = document.getElementById('codigo');
       if (codigo.value != "") {
           var url = "getProducto?codigo=" + escape(codigo.value);
           var req = initRequest();
           req.onreadystatechange = function() {
	           // if xmlhttp shows "loaded"
               if (req.readyState == 4) {
               		// if "OK"
                   if (req.status == 200) {
                       parseInformacion(req.responseXML);//cuando el server responda....
                   } else if (req.status == 204){
                       alert("error al solicitar informacion al servidor");
                   }
               }
           }
           req.open("GET", url, true);
           req.send(null);
       }
   }
   //cuando responde el server se ejecuta esto
   function parseInformacion(responseXML){
   		var producto = responseXML.getElementsByTagName("producto")[0];//se toma el nodo principal
   		var porcion = document.getElementById('tipo[1]');
//se toman toso los otros nodos
   		var msg = producto.childNodes[0];
   		var con = producto.childNodes[1];
   		var uni = producto.childNodes[2];
   		var inv = producto.childNodes[3];
   		var piz = producto.childNodes[4];
   		var res = producto.childNodes[5];
   		
   		if(msg.childNodes[0]!=null && msg.childNodes[0].nodeValue!=""){
   			alert(msg.childNodes[0].nodeValue);
   		}else{
   			inventario = inv.childNodes[0].nodeValue;
   			piezas = piz.childNodes[0].nodeValue;
   			residuo = res.childNodes[0].nodeValue;
   			var concepto = document.getElementById('concepto');
   			var unitario = document.getElementById('precioUnitario');
   			
   			concepto.value = con.childNodes[0].nodeValue;
   			if(!porcion.checked)
   				unitario.value = uni.childNodes[0].nodeValue;
   			else
   				unitario.value = 1;
   			
   			calculaTotal();
   		}
   }