Buenas,
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 {
exit('Failed to open data_forosdelweb.xml.'); }
?>
El script anterior no me muestra nada por pantalla.
Si descomento la linea //print_r($xml); muestra la siguiente información
Código:
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.
)
Muchas gracias de antemano!