Foros del Web » Programación para mayores de 30 ;) » Programación General »

Como obtener los tres telefonos en este xml ?

Estas en el tema de Como obtener los tres telefonos en este xml ? en el foro de Programación General en Foros del Web. Hola, Estoy aprendiendo esto del XML y consigo parsear (analizar) todos los xml sin problemas menos cuando hay varios hijos que comparten mismo path y ...
  #1 (permalink)  
Antiguo 06/07/2006, 17:27
 
Fecha de Ingreso: julio-2006
Mensajes: 3
Antigüedad: 17 años, 9 meses
Puntos: 0
Busqueda Como obtener los tres telefonos en este xml ?

Hola,

Estoy aprendiendo esto del XML y consigo parsear (analizar) todos los xml sin problemas menos cuando hay varios hijos que comparten mismo path y nombre. En un ejemplo sencillo se ve mejor :

Código:
<Resultado>
                <persona:nombre>Alberto</persona:nombre>
                <persona:infodetallada>
                       <persona:calle>alcala</persona:calle>
                       <persona:ciudad>madrid</persona:ciudad>
                       <persona:telefono>915658767</persona:telefono>
                       <persona:telefono>902345644</persona:telefono>
                       <persona:telefono>677234345</persona:telefono>
                </persona:infodetallada>
</Resultado>
Yo recibo resultados en xml de este estilo en una variable de php ($xml_devuelto) y tengo por ejemplo que mostrar los 3 telefonos que tiene esa persona. Como hago esto en php?

Ahora mismo uso un parser llamado minixml (minixml.psychogenic.com) y consigo extraer esa informacion pero el problema llega en el <persona:telefono> que al ser 3 solo me muestra el resultado del primero que aparece, he logrado una forma de sacarlo que es calculando la posicion del resultado pero claro muchas veces no se la posicion y varia.. total que solo puedo saber un telefono y los otros no hay manera de recogerlos.

Si alguien me puede decir como y pone run ejemplo, no tiene que ser usando ese parser sino con cualquier otro o con cualquier funcion de php o similar se lo agradeceria pues me he atascado solo por eso , no hay forma de dar con ello.

Muchas gracias

Última edición por Corretja; 06/07/2006 a las 17:54
  #2 (permalink)  
Antiguo 14/07/2006, 15:54
 
Fecha de Ingreso: julio-2006
Mensajes: 10
Antigüedad: 17 años, 9 meses
Puntos: 0
Espero que te sirva

este es el xml

<?xml version="1.0" ?>
<company>
<employee id="001" sex="M" age="20">Premshree Pillai</employee>
<employee id="002" sex="M" age="24">Kumar Singh</employee>
<employee id="003" sex="M" age="21">Ranjit Kapoor</employee>
<turnover>
<year id="2000">100,000</year>
<year id="2001">140,000</year>
<year id="2002">200,000</year>
</turnover>
</company>

y con esto lo haces

var companies=xmlDoc.getElementsByTagName("company");
var employees=companies[0].getElementsByTagName("employee");
document.write('<table border="1">');
document.write('<tr><th>id</th><th>Sex</th><th>Age</th></tr>');
for(var i=0; i<employees.length; i++) {
document.write('<tr>');
document.write('<td>' + employees[i].getAttribute("id") + '</td>');
document.write('<td>' + employees[i].getAttribute("sex") + '</td>');
document.write('<td>' + employees[i].getAttribute("age") + '</td>');
document.write('</tr>');
}
document.write('<table>');

espero que te sirva
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 00:44.