Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

| Rubrika Php / mysql

Diskusia k článku

Parsovanie XML súboru v PHPZobraziť článok

rajo
Dátum a čas 18. 09. 2009, 12:32

Ako na to, keď sa nedá použiť funkcia simplexml_load_file, čiže keď je zrejme vypnuté allow_url_fopen??? Prosím "aspoň" o nejakú nápovedu...

molly
Dátum a čas 04. 02. 2009, 01:03 E-mail info [a] mackousko.sk

Zdravim. Jedna sa o vypis v xml z webnovin. Je tam dajme tomu 10 clankov. Vsetko je v poriadku akurat problem je v tom ze vypise iba 1 clanok a neviem ako vypisat ostatne.

masko
Dátum a čas 04. 02. 2009, 00:11 E-mail masek [a] altamira.sk

a pomocou navodu spomenuteho v clanku to nejde? simple_xml_load_file v mnohyc pripadoch pomoze, pri zlozitych strukturach vsak obcas byva problem.

molly
Dátum a čas 03. 02. 2009, 20:33 E-mail info [a] mackousko.sk

Zdravim. Super clanok. Este by som sa rad informoval ci viete poradit ako spravit vypis ked mam taketo xml:


webnoviny.sk

20090203
30559
1
urn:newsml:webnoviny.sk:20090203:30559:1





20090203T131100+0100
20090203T130813+0100
5





Slováci sa k elektroodpadu správajú ekologickejšie, tvrdí Nahálková

sita

Copyright SITA Slovenska tlacova agentura 2009



















BRATISLAVA 3. februára (WEBNOVINY) - Slováci sa k elektroodpadu správajú ekologickejšie, tvrdí marketingová manažérka Envidomu Jana Nahálková. Oproti roku 2006 sa za minulý rok zbavilo svojich spotrebičov ekologicky až o 15 percent viac Slovákov, za rok 2008 ich bolo asi 53 percent. Dávali ich najmä do organizovaného zberu v obci, do zberných dvorov, predajní alebo im ich predajcovia odviezli. O šesť percent sa znížil počet tých, ktorý starý elektrospotrebič vyhadzujú do bežného odpadu. Neekologicky sa správa pätnásť percent. Tiež menej ľudí svoje spotrebiče daruje, predá alebo používa ďalej. Vyplýva to z prieskumu, ktorý pre Envidom v novembri robili United Consultants a agentúra Focus na vzorke viac ako tisíc Slovákov.

Každý druhý Slovák v minulom roku vyradil aspoň jedno elektrické zariadenie, každý štvrtý vyradil malý spotrebič, ako je fén, rýchlovarná kanvica alebo mikrovlnka, lampa a mobilný telefón. Takmer polovica respondentov predpokladá, že tento rok vyradí aspoň jedno zariadenie, štvrtina si myslí, že dva a viac. Hlavným dôvodom je nahradiť starý nefunkčný prístroj. Napriek tomu, že bol starý funkčný, nakupovali Slováci najmä mobilné telefóny, počítače a elektrické sporáky. U mobilných telefónov je takmer sedem z desiatich pri vyradení ešte funkčných. Najmä staré hračky ľudia vyraďujú a už nekupujú nové.

Slováci v minulom roku vyradili oproti roku 2006 podstatne viac malých spotrebičov a počítačov, ale oveľa menej práčok. V tomto roku budú vyraďovať najmä malé spotrebiče, mobilné telefóny a elektrické hračky, menej však radiátorov, práčok a sporákov. Ako tvrdí generálny riaditeľ Envidomu Martin Ciran, tieto vyhliadky sú pesimistické, dôvodom je finančná kríza.

Všetky informácie o tom, ako správne naložiť so starými či nefunkčnými elektrospotrebičmi, sú na stránke www.envidom.sk.

SITA











25642









VDAKA

Kejli
Dátum a čas 18. 12. 2008, 16:37

Díky za pěkný článek. Je to napsánou hezky srozumitelně. Pomohlo mi to.

Naspäť naspäť

Pridať komentár

Koľko je na ruke prstov?

Náhľad článku

Parsovanie XML súboru v PHP

XML je dnes už relatívne rozšírená forma sprístupňovania dynamicky generovaného obsahu pre externých partnerov. Každý väčší aj menší web má napríklad svoje RSS, čo je tiež XML formátovaný súbor. Pomocou vhodne vygenerovaného XML feedu dokážeme napríklad zobraziť spravodajstvo tlačovej agentúry, najnovšie ponuky pracovného portálu či aktuálnu ponuku autobazáru. Všetko samozrejme presne napasované do nášho dizajnu. Princíp je jednoduchý – všetok takýto externý obsah sa naťahuje z dynamicky generovaného XML súboru, ktorý je aktualizovaný zo strany poskytovateľa služby.
Ako príklad si zoberme RSS feed tlačovej agentúry SITA. Na stránke http://www.webnoviny.sk/…-Kanaly.html nájdeme zoznam všetkých feedov, ktoré SITA ponúka, majú ich prehľadne rozčlenené do mnohých kategórií.
Základom parsovania jednoduchých XML súborov, akými RSS feedy sú, je PHP funkcia simplexml_load_fi­le.

<?
 
$request_url = "http://www.webnoviny.sk/rss/iwebnoviny7.rss"; // adresa xml súboru
$xml = simplexml_load_file($request_url) or die("feed sa nepodarilo načítať");
 
?>

Pokiaľ je všetko tak ako má byť, zdrojový súbor sa našiel a jeho štruktúra je taká, že ju PHP načíta, k premennej $xml môžeme pristupovať ako k objektu, v ktorom sú uložené jednotlivé vetvy XML súboru. Pre lepšie pochopenie uvádzam časť výpisu premennej prostredníctvom var_dump:

<?
// var_dump($xml);
 
object(SimpleXMLElement)#1 (2) {
  ["@attributes"]=>
  array(1) {
    ["version"]=>
    string(3) "2.0"
  }
  ["channel"]=>
  object(SimpleXMLElement)#2 (6) {
    ["title"]=>
    string(24) "Webnoviny.sk - Auto-moto"
    ["link"]=>
    string(24) "http://www.webnoviny.sk/"
    ["description"]=>
    string(26) "Spravodajský portál SITA"
    ["language"]=>
    string(2) "sk"
    ["docs"]=>
    string(31) "http://backend.userland.com/rss"
    ["item"]=>
    array(15) {
      [0]=>
      object(SimpleXMLElement)#3 (8) {
        ["title"]=>
        string(66) "Auto-moto: Ceny diaľničných známok pre autá sa nebudú meniť"
        ["link"]=>
        string(100) "http://www.webnoviny.sk/auto-moto/clanok/24012/Ceny-dialnicnych-znamok-pre-auta-sa-nebudu-menit.html"
        ["description"]=>
        string(397) "Ceny diaľničných známok pre motorové vozidlá do 3,5 tony sa nebudú v budúcom roku meniť. Ako vyplýva z nariadenia vlády, ktoré ministri na stredajšom rokovaní kabinetu schválili, dvojstopové motorové vozidlá alebo jazdné súpravy s celkovou hmotnosťou do 3,5 tona zaplatia za užívanie vymedzených úsekov diaľnic a ciest pre motorové vozidlá ročne 36,5 eur (1 099,6 Sk)."
        ["category"]=>
        string(9) "Auto-moto"
        ["author"]=>
        string(12) "Webnoviny.sk"
        ["comments"]=>
        string(100) "http://www.webnoviny.sk/auto-moto/clanok/24012/Ceny-dialnicnych-znamok-pre-auta-sa-nebudu-menit.html"
        ["enclosure"]=>
        object(SimpleXMLElement)#18 (1) {
          ["@attributes"]=>
          array(3) {
            ["url"]=>
            string(46) "http://www.webnoviny.sk/uploady/dialnica-9.jpg"
            ["lenght"]=>
            string(5) "30273"
            ["type"]=>
            string(10) "image/jpeg"
          }
        }
        ["pubDate"]=>
        string(31) "Wed, 29 Oct 2008 19:35:00 +0100"
      }

Pokiaľ by sme chceli získať výpis všetkých aktuálnych správ uvedených v RSS feede, budeme iterovať cez pole $xml->channel->item, ktoré v hierarchii XML feedu predstavuje jednu novinku. K jednotlivým prvkom poľa potom pristupujeme tak, ako vidno na príklade. Je dobré, či skôr nutné, nechať si vždy vypísať štruktúru načítaného súboru prostredníctvom var_dump, aby sme vedeli, k akým prvkom sa dá pristupovať.

foreach($xml->channel->item as $key) {
 
     echo $key->title .'<br />'; // vypíše titulok
     echo $key->link .'<br />'; // vypíše linku na celý článok
     echo $key->enclosure['url'] .'<br />'; // vypíše adresu obrázku k článku
     echo $key->description .'<br />'; // vypíše perex článku
 
}

Parsovanie XMLka nie je nič náročné, pokiaľ je súbor korektne vygenerovaný a má správnu štruktúru. Vďaka feedom sa weby dajú obohatiť o množstvo aktualizovaných informácií z externých zdroj – pozor však aj na autorské práva!

RSS