Foros del Web » Programando para Internet » PHP »

Obtener nodos internos en XML

Estas en el tema de Obtener nodos internos en XML en el foro de PHP en Foros del Web. Hola!! Cómo puedo obtener nodos internos en un XML??, estoy usando simpleXMLElement y children pero no logro llegar a los nodos que necesito. Esto es ...
  #1 (permalink)  
Antiguo 12/07/2012, 12:26
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 17 años, 9 meses
Puntos: 1
Obtener nodos internos en XML

Hola!!

Cómo puedo obtener nodos internos en un XML??, estoy usando simpleXMLElement y children pero no logro llegar a los nodos que necesito.

Esto es lo que estoy haciendo:


Código PHP:
Ver original
  1. $xml = new SimpleXMLElement('
  2. <peliculas>
  3.  <pelicula>
  4.     <titulo>Pelicula 1</titulo>
  5.     <clasificacion>A</clasificacion>      
  6.     <actores>
  7.         <actor>
  8.              <nombre>Isabel</nombre>
  9.              <personaje>Interpreta a mujer pelicula 1</personaje>
  10.         </actor>
  11.         <actor>
  12.              <nombre>Juan</nombre>
  13.              <personaje>Interpreta a hombre pelicula 1</personaje>
  14.         </actor>
  15.      </actores>
  16.  </pelicula>
  17.  <pelicula>
  18.     <titulo>Pelicula 2</titulo>
  19.     <clasificacion>B</clasificacion>      
  20.     <actores>
  21.         <actor>
  22.              <nombre>Isabel</nombre>
  23.              <personaje>Interpreta a mujer pelicula 2</personaje>
  24.         </actor>
  25.         <actor>
  26.              <nombre>Juan</nombre>
  27.              <personaje>Interpreta a hombre pelicula 2</personaje>
  28.         </actor>
  29.      </actores>
  30.  </pelicula>
  31. </peliculas>
  32. ');
  33.  
  34. foreach($xml->peliculas->pelicula->actores->children() as $obteneractores ){
  35.  var_dump($obteneractores);
  36. }

Necesito que me muestre los actores, pero no me muestra nada.

Desde ya gracias por su atención y ayuda.
  #2 (permalink)  
Antiguo 12/07/2012, 12:40
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: Obtener nodos internos en XML

Ya hice una corrección

Código PHP:
Ver original
  1. foreach($xml->pelicula->children() as $obteneractores ){
  2.  var_dump($obteneractores);
  3. }

Y ya veo resultados:

object(SimpleXMLElement)[3]

object(SimpleXMLElement)[5]

object(SimpleXMLElement)[3]
public 'actor' =>
array (size=2)
0 =>
object(SimpleXMLElement)[5]
public 'nombre' => string 'Isabel' (length=6)
public 'personaje' => string 'Interpreta a mujer pelicula 1' (length=29)
1 =>
object(SimpleXMLElement)[6]
public 'nombre' => string 'Juan' (length=4)
public 'personaje' => string 'Interpreta a hombre pelicula 1' (length=30)


Pero por qué no me devuelve todos los actores, deberían ser 4, dos por cada película.

Qué estoy haciendo mal??
  #3 (permalink)  
Antiguo 12/07/2012, 16:55
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 8 años, 10 meses
Puntos: 155
Respuesta: Obtener nodos internos en XML

mm es de captarle el uso a esa libreria

Código PHP:
Ver original
  1. <?php
  2. $xml = new SimpleXMLElement('
  3. <peliculas>
  4.  <pelicula>
  5.     <titulo>Pelicula 1</titulo>
  6.     <clasificacion>A</clasificacion>      
  7.     <actores>
  8.         <actor>
  9.              <nombre>Isabel</nombre>
  10.              <personaje>Interpreta a mujer pelicula 1</personaje>
  11.         </actor>
  12.         <actor>
  13.              <nombre>Juan</nombre>
  14.              <personaje>Interpreta a hombre pelicula 1</personaje>
  15.         </actor>
  16.      </actores>
  17.  </pelicula>
  18.  <pelicula>
  19.     <titulo>Pelicula 2</titulo>
  20.     <clasificacion>B</clasificacion>      
  21.     <actores>
  22.         <actor>
  23.              <nombre>Isabel</nombre>
  24.              <personaje>Interpreta a mujer pelicula 2</personaje>
  25.         </actor>
  26.         <actor>
  27.              <nombre>Juan</nombre>
  28.              <personaje>Interpreta a hombre pelicula 2</personaje>
  29.         </actor>
  30.      </actores>
  31.  </pelicula>
  32. </peliculas>
  33. ');
  34.  
  35. foreach($xml->pelicula as $datos ){
  36.  
  37.  
  38.     foreach ($datos->actores->actor as $actor){
  39.         echo $actor->nombre . " " . $actor->personaje ."<br>";
  40.     }
  41. }
  42.  
  43.  
  44. */
  45. ?>
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #4 (permalink)  
Antiguo 16/07/2012, 13:03
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: Obtener nodos internos en XML

Muchas gracias mogurbon!!, resuelve correctamente.

Etiquetas: internos, nodos, xml
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 12:55.