Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.
Avatar
smoukey
Člen
Avatar
smoukey:21.1.2016 12:52

Ahoj,

nedávno jste mi zde poradili, jak přečíst xml přes php. To pomohlo, ale jen do doby, než jsem dělal podrobnější výpis. Přikládám větší část xml a php kód, kterým čtu.

$reader = new XMLReader();
                        $reader->open("data/sns.xml");
                        while ($reader->read()) {

                                if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute('sensor') == "th0" && $reader->getAttribute('cat') == "temp" && $reader->getAttribute('unit') == "c") {
                                        echo "Venkovní teplota: ".$reader->readString()." °C";
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "th0" && $reader->getAttribute("cat") == "hum" && $reader->getAttribute("unit") == "rel"){
                                        echo "venkovní vlhkost: ".$reader->readString();
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "thb0" && $reader->getAttribute("cat") == "temp" && $reader->getAttribute("unit") == "c"){
                                        echo "Vnitřní teplota: ".$reader->readString()."°C";
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "thb0" && $reader->getAttribute("cat") == "hum" && $reader->getAttribute("unit") == "rel"){
                                        echo "Východ slunce: ".$reader->readString();
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute('sensor') == "lunar" && $reader->getAttribute("cat") == "phase" && $reader->getAttribute("unit") == "cz" ){
                                        echo "Fáze měsíce je: ".$reader->readString();
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "sunrise" && $reader->getAttribute("cat") == "standard" && $reader->getAttribute("unit") == "local"){
                                        echo "Východ slunce: ".$reader->readString();
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "sunset" && $reader->getAttribute("cat") == "standard" && $reader->getAttribute("unit") == "local"){
                                        echo "Západ slunce: ".$reader->readString();
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "thb0" && $reader->getAttribute("cat") == "press" && $reader->getAttribute("unit") == "hpa"){
                                        echo "Tlak: ".$reader->readString()."hpa";
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "thb0" && $reader->getAttribute("cat") == "fc" && $reader->getAttribute("unit") == "textcz"){
                                        echo $reader->readString();
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "wind0" && $reader->getAttribute("cat") == "dir" && $reader->getAttribute("unit") == "deg"){
                                        echo "Směr větru: ".$reader->readString()."°";
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "wind0" && $reader->getAttribute("cat") == "speed" && $reader->getAttribute("unit") == "ms"){
                                        echo "Rychlost větru: ".$reader->readString()."ms";
                                        echo "<br />";
                                }
                                if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute("sensor") == "sunrise" && $reader->getAttribute("cat") == "standard" && $reader->getAttribute("unit") == "local"){
                                        echo "Východ slunce: ".$reader->readString();
                                        echo "<br />";
                                }
                                continue;

                        }

popis: Potřebuji ošetřit to, že pokud se ten reader dostane k řádku v xml

<data timeframe="actual">

Je to tag, v kterém jsou vnořené další tagy, které vypisuji kódem, který jsem přiložil výše.

Tagy vypadají asi takto:

<item sensor="system" cat="version" unit="text">4.9u</item>
   <item sensor="system" cat="version" unit="num">49</item>
   <item sensor="system" cat="build" unit="num">1261</item>
   <item sensor="system" cat="platform" unit="text">SilverStone_DC01</item>
   <item sensor="system" cat="language" unit="text">Czech</item>
   <item sensor="system" cat="temp" unit="unit">c</item>
   <item sensor="system" cat="hum" unit="unit">rel</item>
   <item sensor="system" cat="press" unit="unit">hpa</item>
   <item sensor="system" cat="wind" unit="unit">ms</item>
   <item sensor="system" cat="rain" unit="unit">mm</item>
   <item sensor="date0" cat="date" unit="utc">20160111090606</item>
   <item sensor="date0" cat="date2" unit="utc">11.01.2016 09:06:06</item>
   <item sensor="date0" cat="puredate" unit="utc">11.01.2016</item>
   <item sensor="date0" cat="time" unit="utc">09:06:06</item>
   <item sensor="date0" cat="year" unit="utc">2016</item>
   <item sensor="date0" cat="month" unit="utc">01</item>
   <item sensor="date0" cat="day" unit="utc">11</item>
   <item sensor="date0" cat="dayofweek" unit="utc">1</item>
   <item sensor="date0" cat="hour" unit="utc">09</item>
   <item sensor="date0" cat="min" unit="utc">06</item>

Ale bohužel si nevím rady jak se tím prokousat.

Všem děkuji za rady.

 
Odpovědět
21.1.2016 12:52
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 1 zpráv z 1.