Vypis XML do PHP

Programovacie jazyky, rady, poradňa...
spaceo
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 90
Registrovaný: 03 dec 2006, 12:02

Vypis XML do PHP

Príspevok od používateľa spaceo »

Zdravim, chcel by som poprosit o radu pri vypise xml suboru do php.

Potrebujem vypisat XML subor o strukture:

Kód: Vybrať všetko

<Tituly>

<titul>
<id>ZGrThBcX28yUiyj%2b1OvWbw</id>
<nazov>Avatar</nazov>
<datum>26.01.2010</datum>
<hodina>17:00</hodina>
<sala>Sála  B</sala>
</titul>

<titul>
<id>ObkzZggfeeSkhInAveOs%2bA</id>
<nazov>Avatar 3D</nazov>
<datum>25.01.2010</datum>
<hodina>20:50</hodina>
<sala>Sála  A</sala>
</titul>

<titul>
<id>v74WVrNMiQMRqhglLmKCxw</id>
<nazov>Avatar 3D</nazov>
<datum>26.01.2010</datum>
<hodina>17:40</hodina>
<sala>Sála  A</sala>
</titul>

...... atď.....

</Tituly>


PHP script, ktorym to skusam riesit:

Kód: Vybrať všetko

<?php


$xml = simplexml_load_file("http://www.disdata.cz/exportXML/523740.xml") or die("nepodarilo sa načítať");
 
 
foreach ($xml->titul as $titul);

{
echo $titul->id .'<br />';
echo $titul->nazov .'<br />';
echo $titul->datum .'<br />';
echo $titul->hodina .'<br />';
echo $titul->sala .'<br />';
}

{
echo $titul->id .'<br />';
echo $titul->nazov .'<br />';
echo $titul->datum .'<br />';
echo $titul->hodina .'<br />';
echo $titul->sala .'<br />';
}


?>


Problem je v tom ze mi to vypisuje stale dookola vetvy len z posledneho <titul> </titul> . Skusal som a vymyslal nejake "zaciatocnicke" finty (aj google), ale nic nepomohlo.

Vopred ďakujem za Vase reakcie a podnety.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Vypis XML do PHP

Príspevok od používateľa audiotrack »

v prípade že máš XML so sériou rovnako pomenovaných elementov (nodes) na tej istej úrovni, simplexml ich nesprávne spracováva a nedovoluje použiť foreach(). Je to spôsobené chybou PHP xml_parsera. Použi klasický cyklus a malo by to ísť

Kód: Vybrať všetko

$cnt = count($xml->titul);
for($i = 0; $i < $cnt; $i++) {
  echo $xml->titul[$i]->id .'<br />';
  echo $xml->titul[$i]->nazov .'<br />';
  ...;
} 
spaceo
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 90
Registrovaný: 03 dec 2006, 12:02

Re: Vypis XML do PHP

Príspevok od používateľa spaceo »

Pekne dakujem, toto mi velmi pomohlo :D

Respekt !
Napísať odpoveď