Foros del Web » Programando para Internet » PHP »

¿Se puede leer un xml a la inversa con php?

Estas en el tema de ¿Se puede leer un xml a la inversa con php? en el foro de PHP en Foros del Web. Hola, Me explico... He creado un parser para leer con php un archivo xml... funciona ok. Pero tengo una duda, ¿se puede volver hacia atrás ...
  #1 (permalink)  
Antiguo 23/01/2009, 10:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
¿Se puede leer un xml a la inversa con php?

Hola,

Me explico... He creado un parser para leer con php un archivo xml... funciona ok. Pero tengo una duda, ¿se puede volver hacia atrás en el árbol xml?

Es que me proporcionan un xml así por ejemplo:

- <coches>
- <coche>
<marca>Ford</marca>
<codigo>4951</codigo>
<motor>Diesel</motor>
</coche>
</coches>

Pongamos que tenemos eso. La idea de mi pregunta es. ¿Se puede hacer que cuando el parser se encuentre que ese coche tiene motor Diesel, vuelve hacia atrás y guarde la marca en una variable?

Si el orden fuera así sería fácil:

<motor>Diesel</motor>
<marca>Ford</marca>

Pero tal como lo he puesto la 1ª vez no sé si lo puedo hacer...

Gracias cracks.
  #2 (permalink)  
Antiguo 23/01/2009, 10:39
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ¿Se puede leer un xml a la inversa con php?

¿Porque no usar SimpleXML?
http://www.php.net/manual/es/book.simplexml.php
  #3 (permalink)  
Antiguo 23/01/2009, 10:50
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ¿Se puede leer un xml a la inversa con php?

Hola Ronruby,

Sí, ya lo estoy utilizando y es muy sencillo, la verdad.

Pero en este caso estoy lerdeando y no sé cómo solucionarlo, es que para lo que quiero hacer en este caso tendría que estar antes la etiqueta motor, para luego poder guardar las variables. Estoy utilizando esto (pongo sólo el corte que nos ocupa):

- <coches>
- <coche>
<marca>Ford</marca>
<codigo>4951</codigo>
<motor>Diesel</motor>
</coche>
</coches>

foreach ($concesionario->coches->coche as $coche) {
$marca = $coche->marca;
$motor = $coche->motor;
if ($motor == "Diesel") {
$cochediesel = $marca;
}
}

Entonces claro, como tengo la etiqueta motor por debajo de la etiqueta marca, lo que me hace es guardar como $cochediesel el registro siguiente (del foreach siguiente)...

Si estuviera al revés sería fácil, pero al tener la etiqueta motor después de la de coche, no sé cómo volver para arriba para que conserve esa etiqueta...

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 04:16.