Pokud chcete v PHP4 parsovat XML soubor, například RSS zdroj, musíte použít XSLT funkce (xslt_create, xslt_set_base, xslt_process), naučit se základy XSLT a s jejich pomocí si pak vytvořit soubor s XSLT šablonou, pomocí které pak z XML zdroje vytáhnete potřebná data.
Další možností je ještě použití XML funkcí, ty jsem však nezkoušel a s letmým pohledem na ukázkové kódy mi to opět připadá jako kanón na vrabce.
S příchodem PHP5 však přichází více možností, a jednou z nich je vynikající rozšíření SimpleXML (součást standardního balíku PHP), s jehož pomocí je parsování XML opravdu je pár řádků kódu.
Zápis ukážu na příkladu:
1 <?php
2
3 /* Zde načteme obsah XML souboru do proměnné; je možné použít i funkci simplexml_load_string, kterou lze načíst přímo XML data, která máme uložena v nějaké proměnné. V této chvíli se nám vytvoří objekt $xml, se kterým budeme dále pracovat. */
4 $xml=simplexml_load_file("http://italo.cz/rss.php");
5
6 /* Teď je to opravdu primitivní. Jednoduchým příkazem $xml->NazevElementu vypíšeme potřebný obsah. Následující kód vypíše název kanálu, jeho popis a odkaz na web. */
7 echo "<div id='ctecka'>
8 <h1>
9 <a href='".$xml->channel->link."' onclick='return!window.open(this.href);'>".$xml->channel->title." - ".$xml->channel->description."</a>
10 </h1>";
11
12 /* A protože je článků většinou v RSS zdroji víc, jednoduchým cyklem foreach získáme z $xml->channel->item veškerá data, a to opět ve formátu objektu. */
13 foreach ($xml->channel->item as $item){
14 echo "<div class='item'>
15 <h2>
16 <a href='".$item->link."' onclick='return!window.open(this.href);'>".$item->title."</a>
17 </h2>
18 ".$item->description.$item->image."
19 </div>";
20 }
21
22 echo "</div>";
23 ?>
A to je vše. Jediným omezením těchto funkcí je, že umí korektně pracovat pouze s daty v kódování utf-8, pro převod tedy případně použijte funkci iconv s modifikátorem //IGNORE (některé znaky v utf-8 totiž nemají svou obdobu ve windows-1250 — převod by pak skončil chybou).