IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: XML to PHP -> 50 tisic dat.

Aktivity
Avatar
katrincsak
Člen
Avatar
katrincsak:28.7.2015 3:29

Zdravím,

lámu si s tímto hlavu již několik hodin a nevím si rady.

Chci převést pro kamaráda jeden XML soubor sazky, ale ať se snažím jak se snažím nemohu vymyslet cyklus, nebo něco co by vysypalo všechny data. Vysype to jen malou část a to v podstatě jen to co se mění díky cyklu for.

Výsledně to udělá něco jako kod níže. Jenže potřebuji logicky dosazovat i za nuly další cykly. Nebo něco co to vyřeší :(

$xml->supersport[$CYKLUS]->sport[0]->competition[0]->match[0]->event[0]->opportunity[0]

Nejlépe funkční je toto, ale řeší jen 10% toho co potřebuji...

XML soubor: http://ban.tipsport.cz/f/oddsFeed.xml

Děkuji za pomoc :(

 
Odpovědět
28.7.2015 3:29
Avatar
katrincsak
Člen
Avatar
katrincsak:28.7.2015 10:41

Zapomněl jsem jen vložit do pastebinu.

$xml = simplexml_load_file(”http://ban.tipsport.cz/f/oddsFeed.xml”);
 
Nahoru Odpovědět
28.7.2015 10:41
Avatar
katrincsak
Člen
Avatar
katrincsak:29.7.2015 1:12

Tak jsem na to na konec přišel...Brutalita :D ...aktuálně skoro 300 tisíc dat (Podle aktualizace Tipsportu cca každých 20 minut.)

  • Script je docela dlouhý a dost tabovaný kvůli přehlednosti. Nahrál jsem i fotku k tomu.

Funguje to na principu

$xml->supersport[$CYKLUS]->sport[0]->competition[0]->match[0]->event[0]->opportunity[0]

Snad to třeba někomu pomůže, každopádně rád vysvětlím, pakliže někdo bude chtít.
(Ještě budu nahrávat do MySQL)

<?php
/*
- supersport (name)
- sport (name)
- competition (id, name, annualName, url)
- match (id, matchId, name, dateClosed, url)
- event (name, eventType, eventTypeDescription)
- opportunity (number, type, typeName, shortName, fullName)
*/

$xml=simplexml_load_file("http://ban.tipsport.cz/f/oddsFeed.xml");


$super_c = count($xml->supersport);

for($super=0; $super < $super_c; $super++)
{
        $opport_c = count($xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[0]->opportunity);

        echo "<br><font color='red'>".$xml->supersport[$super]['name']."</font>";$x++;

        $sport_c = count($xml->supersport[$super]->sport);
                for($sport=0; $sport < $sport_c; $sport++)
                {
                        echo "<br>".$xml->supersport[$super]->sport[$sport]['name'];$x++;
                        $compet_c = count($xml->supersport[$super]->sport[$sport]->competition);

                 for($compet=0; $compet < $compet_c; $compet++)
                 {
                        echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]['name'];$x++;

                                        $match_c = count($xml->supersport[$super]->sport[$sport]->competition[$compet]->match);
                                                for($match=0; $match < $match_c; $match++)
                                                {
                                                        echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]['id'];$x++;
                                                        echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]['matchId'];$x++;
                                                        echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]['name'];$x++;
                                                        echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]['dateClosed'];$x++;
                                                        echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]['url'];$x++;

                                                                $event_c = count($xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event);
                                                                        for($event=0; $event < $event_c; $event++)
                                                                        {
                                                                                echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]['name'];$x++;
                                                                                echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]['eventType'];$x++;
                                                                                echo "<br>".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]['eventTypeDescription'];$x++;

                                                                                $opport_c = count($xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]->opportunity);
                                                                                        for($opport=0; $opport < $opport_c; $opport++)
                                                                                        {
                                                                                                echo "<br> ".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]->opportunity[$opport]['number'];$x++;
                                                                                                echo "<br> ".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]->opportunity[$opport]['type'];$x++;
                                                                                                echo "<br> ".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]->opportunity[$opport]['typeName'];$x++;
                                                                                                echo "<br> ".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]->opportunity[$opport]['shortName'];$x++;
                                                                                                echo "<br> ".$xml->supersport[$super]->sport[$sport]->competition[$compet]->match[$match]->event[$event]->opportunity[$opport]['fullName'];$x++;
                                                                                        }
                                                                        }
                                                }
                                }
                }
}
?>
 
Nahoru Odpovědět
29.7.2015 1:12
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.