Tengo muchos problemas con simpleXML no me llevo bien con él y él tampoco se lleva bien conmigo xD
Mira que me gustan los ficheros XML pero no he conseguido dominar la técnica para leer y acceder a cualquier campo que quiera. Si sois tan amables de ponerme un ejemplo en base a este fichero XML os lo agradecería.
Tengo que decir que pasar un XML a un array lo conseguí pero claro no es lo mismo... que acceder directamente con simpleXML, y leyendo el manual de phpnet no lo he conseguido
http://php.net/manual/en/book.simplexml.php
Código XML
Código xml:
Ver original
<ROOT GMTNow="26.12.2009 21:10:58"> <EVENTS> <E DBID="1789167" N="Titulo1" D="26/12/2009 20:05:00" StdEventDate="2009-12-26T20:05:00" StdEventDate_UTC="2009-12-26T20:05:00" SID="7" RID="9" LID="1353"> <G DBID="16347728" EID="1789167" N="titulo1.1" GT="7701"> <R DBID="58871633" N="titulo1.1.1" O="aaa"/> <R DBID="58871634" N="titulo1.1.2" O="bbb"/> </G> <G DBID="16347729" EID="1789167" N="titulo1.2" GT="7353"> <R DBID="58871635" N="titulo1.2.1" O="aaa"/> <R DBID="58871636" N="titulo1.2.2" O="bbb"/> </G> </E> <E DBID="1774810" N="titulo2" D="26/12/2009 21:30:00" StdEventDate="2009-12-26T21:30:00" StdEventDate_UTC="2009-12-26T21:30:00" SID="11" RID="9" LID="211"> <G DBID="16296973" EID="1774810" N="titulo2.1" GT="262"> <R DBID="58710872" N="titulo2.1.1" O="aaa"/> <R DBID="58710873" N="titulo2.1.2" O="bbb"/> </G> <G DBID="16339245" EID="1774810" N="titulo2.2" GT="104"> <R DBID="58847315" N="titulo2.2.1" O="aaa"/> <R DBID="58847316" N="titulo2.2.2" O="bbb"/> </G> <G DBID="16345937" EID="1774810" N="titulo2.3" GT="3887"> <R DBID="58866743" N="titulo2.3.1" O="aaa"/> <R DBID="58866744" N="titulo2.3.2" O="bbb"/> </G> </E> <E DBID="1786215" N="titulo3" D="27/12/2009 19:30:00" StdEventDate="2009-12-27T19:30:00" StdEventDate_UTC="2009-12-27T19:30:00" SID="7" RID="28" LID="854"> <G DBID="16295540" EID="1786215" N="titulo3.1" GT="66"> <R DBID="58707046" N="titulo3.1.1" O="aaa"/> <R DBID="58707047" N="titulo3.1.2" O="bbb"/> </G> <G DBID="16295549" EID="1786215" N="titulo3.2" GT="7970"> <R DBID="58707064" N="titulo3.2.1" O="aaa"/> <R DBID="58707065" N="titulo3.2.2" O="bbb"/> </G> <G DBID="16295550" EID="1786215" N="titulo3.3" GT="2225"> <R DBID="58707066" N="titulo3.3.1" O="aaa"/> <R DBID="58707067" N="titulo3.3.2" O="bbb"/> <R DBID="58707068" N="titulo3.3.3" O="ccc"/> <R DBID="58707069" N="titulo3.3.4" O="ddd"/> <R DBID="58707070" N="titulo3.3.5" O="eee"/> <R DBID="58707071" N="titulo3.3.6" O="fff"/> <R DBID="58707072" N="titulo3.3.7" O="ggg"/> <R DBID="58707073" N="titulo3.3.8" O="hhh"/> <R DBID="58707074" N="titulo3.3.9" O="iii"/> <R DBID="58707075" N="titulo3.3.10" O="jjj"/> <R DBID="58707076" N="titulo3.3.11" O="kkk"/> <R DBID="58707077" N="titulo3.3.12" O="lll"/> </G> <G DBID="16329206" EID="1786215" N="titulo3.4" GT="7698"> <R DBID="58820167" N="titulo3.4.1" O="aaa"/> <R DBID="58820168" N="titulo3.4.2" O="bbb"/> </G> <G DBID="16329207" EID="1786215" N="titulo3.5" GT="6710"> <R DBID="58820169" N="titulo3.5.1" O="aaa"/> <R DBID="58820170" N="titulo3.5.2" O="bbb"/> </G> </E> </EVENTS> </ROOT>
SCRIPT
Código PHP:
Ver original
<?php echo '<pre>'; //print_r($xml); echo '</pre>'; foreach ($xml->EVENTS as $evento) { echo '<pre>'; //print_r($evento); echo '</pre>'; echo $evento[0]->DBID, '<br />'; } } else { } ?>
El script anterior no me muestra nada por pantalla.
Si descomento la linea //print_r($xml); muestra la siguiente información
Código:
Muchas gracias de antemano! SimpleXMLElement Object ( [@attributes] => Array ( [GMTNow] => 26.12.2009 21:10:58 ) [EVENTS] => SimpleXMLElement Object ( [E] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [DBID] => 1789167 [N] => Titulo1 [D] => 26/12/2009 20:05:00 [StdEventDate] => 2009-12-26T20:05:00 [StdEventDate_UTC] => 2009-12-26T20:05:00 [SID] => 7 [RID] => 9 [LID] => 1353 ) [G] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [DBID] => 16347728 [EID] => 1789167 [N] => titulo1.1 [GT] => 7701 ) [R] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [DBID] => 58871633 [N] => titulo1.1.1 [O] => aaa ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [DBID] => 58871634 [N] => titulo1.1.2 [O] => bbb ) ) ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [DBID] => 16347729 [EID] => 1789167 [N] => titulo1.2 [GT] => 7353 ) [R] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [DBID] => 58871635 [N] => titulo1.2.1 [O] => aaa ) ) [1] => SimpleXMLElement Object ( [@attributes] => Array ( [DBID] => 58871636 [N] => titulo1.2.2 [O] => bbb ) ) ) ) ) ) NOTA: He cortado parte de la salida porque excede el numero máximo de caracteres permitidos en el post. )