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();
}
}