Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2007, 11:19
Avatar de navy
navy
 
Fecha de Ingreso: febrero-2006
Mensajes: 36
Antigüedad: 18 años, 10 meses
Puntos: 1
Mejorar al sacar los datos de XML?

Hola a todos.
He buscado una manera de obener los datos de un documento XML desde JavaScript, pero desde mi punto de vista es algo ineficiente. Quisiera hacerlo en algun ciclo para que este trabajo no sea tedioso
Parte del XML, que lo genero desde php es el siguiente:
Código:
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\"?>";
....codigo php......
echo "<libro>";
echo "<titulo>$datos[1]</titulo>";
echo "<nombre>$datos[2]</nombre>";
echo "<apellido>$datos[3]</apellido>";
echo "<editora>$datos[4]</editora>";
echo "<anoP>$datos[5]</anoP>";
echo "<isbn>$datos[6]</isbn>";
echo "<codigoM>$datos[7]</codigoM>";
echo "</libro>";
Ahora en JavaScript lo que quiero es asignar el valor obtenido de XML a distintos campos de texto, este es mi codigo JavaScript
Código:
       var titulo = http.responseXML.getElementsByTagName("titulo")[0];
       var nombre = http.responseXML.getElementsByTagName("nombre")[0];
       var apellido = http.responseXML.getElementsByTagName("apellido")[0];
       var editora = http.responseXML.getElementsByTagName("editora")[0];
       var anoP = http.responseXML.getElementsByTagName("anoP")[0];
       var isbn = http.responseXML.getElementsByTagName("isbn")[0];
       var codigoM = http.responseXML.getElementsByTagName("codigoM")[0];
       
       document.getElementById('textfield0').value = titulo.childNodes[0].nodeValue;
       document.getElementById('textfield1').value = nombre.childNodes[0].nodeValue;
       document.getElementById('textfield2').value = apellido.childNodes[0].nodeValue;
       document.getElementById('textfield3').value = editora.childNodes[0].nodeValue;
       document.getElementById('textfield4').value = anoP.childNodes[0].nodeValue;
       document.getElementById('textfield5').value = isbn.childNodes[0].nodeValue;
       document.getElementById('textfield6').value = codigoM.childNodes[0].nodeValue;
Como ven es algo ineficiente...
Si conocen de alguna solucion para evitar esto se los agradeceria.
Gracias de antemano.
Saludos