Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como acceder a nodos hijos especificos de un xml con php

Estas en el tema de Como acceder a nodos hijos especificos de un xml con php en el foro de PHP en Foros del Web. Hola a todos, teniendo la estructura siguiente estructura en XML. <ejemplo> <A id="1"> <B> <C1 name='n1' id='1'>valor1</C1> <C2 name='n2' id='2'>valor2</C2> </B> </A> <A id="2"> <B> ...
  #1 (permalink)  
Antiguo 02/10/2014, 10:03
 
Fecha de Ingreso: octubre-2014
Ubicación: CARACAS
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
Como acceder a nodos hijos especificos de un xml con php

Hola a todos, teniendo la estructura siguiente estructura en XML.

<ejemplo>
<A id="1">
<B>
<C1 name='n1' id='1'>valor1</C1>
<C2 name='n2' id='2'>valor2</C2>
</B>
</A>
<A id="2">
<B>
<C1 name='n1' id='1'>valor1</C1>
<C2 name='n1' id='1'>valor2</C2>
</B>
</A>
</ejemplo>

Yo se que mediante un bucle, recorro el xml. Como en este diagrama tengo 2 nodos padres (A), se ejecuta el bucle 2 veces.

Yo tengo que acceder a los atributos y valores de varios nodos hijos especificos en cada bucle, digamos los nodos C.

Agradezco de verdad cualquier sugerencia que me sirva de apoyo. muchas gracias.
  #2 (permalink)  
Antiguo 02/10/2014, 10:38
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Como acceder a nodos hijos especificos de un xml con php

Revisa los métodos de simple xml para acceder a los diferentes atributos.


http://php.net/manual/es/book.simplexml.php
__________________
Blog de humor http://elcuasatar.net63.net/
  #3 (permalink)  
Antiguo 02/10/2014, 10:48
 
Fecha de Ingreso: octubre-2014
Ubicación: CARACAS
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Como acceder a nodos hijos especificos de un xml con php

ok voy leer haber que puedo encontrar, gracias
  #4 (permalink)  
Antiguo 03/10/2014, 10:18
 
Fecha de Ingreso: octubre-2014
Ubicación: CARACAS
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Como acceder a nodos hijos especificos de un xml con php

En la pagina que me recomendaron encontre el método xpath, su funcion es buscar el nodo SimpleXML para los hijos que cumplan la path XPath. Ejemplo:

<?php

$string = <<<XML
<a>
<b ID="123">
<b1 ID="b1">b1</b1>
<b2 ID="b2">b2</b2>
<b3 ID="b3">b3</b3>
<c ID="1">texto</c>
<c ID="2">cosas</c>
</b>
<b ID="345">
<b1 ID="b4">b4</b1>
<b2 ID="b5">b5</b2>
<b3 ID="b6">b6</b3>
<c ID="3">código</c>
<c ID="4">texto</c>
<c ID="5">cosas</c>
</b>
</a>
XML;

$xml = new SimpleXMLElement($string);

$id=123;

/* Busca <a><b><c> */
$resultado = $xml->xpath('//b[@ID="'.$id.'"]//c');

while(list( , $nodo) = each($resultado)) {

$arr = $nodo->attributes();

print ("atributoID=".$arr["ID"]).'valor: '.$nodo."<br/>";
}

?>

resultado:

atributoID=1valor: texto
atributoID=2valor: cosas

Etiquetas: hijos, 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 03:59.