NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: Čtení xml

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
smoukey
Člen
Avatar
smoukey:14.1.2016 20:27

Zdravím mám problém s čtením xml souboru přes php.

Mám složitý xml soubor (vkládám jen jeden řádek, který konkrétně potřebuju, soubor má jinak 2 000 řádků)

<meteohub>
  <data timeframe="actual">
    <item sensor="th0" cat="temp" unit="c">1.7</item>
 </data>
</meteohub>

a potřbeuji vypsat hodnotu tohodle itemu, ale potřebuju se k tomu dostat přes attributy tagu <item>, jinými slovy, potřebuju hodnotu itemu, kde se všechyn atributy rovnají tomu, co potřebuji, respektivě tomu, co zadám.

Pro vysvětlení:
Jedná se o meteo stanici, která mi vrací tento xml soubor a má několik sensorů a zrovna tento je pro vypsání venkovní teploty.

Nikde jsem nenašel návod jak přistoupit k hodnotě přes několik atributů s určitou hodnotou.
Předem děkuji za rady.

 
Odpovědět
14.1.2016 20:27
Avatar
Vít Pleskot
Člen
Avatar
Vít Pleskot:15.1.2016 9:37

Ahoj,
nejsem vyvojar ani programator, takze nekdo poradi treba lepe, ale zkusil jsem to takhle:

$reader = new XMLReader();
$reader->open("meteo.xml");
while ($reader->read()) {
    if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == "item" && $reader->getAttribute('sensor') == "th0") {
        echo $reader->readString();
    }
}

A vysledkem je 1.7.

Snad ti to pomuze.
Vit

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
15.1.2016 9:37
Avatar
smoukey
Člen
Avatar
Odpovídá na Vít Pleskot
smoukey:15.1.2016 9:50

Ahoj,

pomohlo to. Moc děkuji, lámal jsem si tady nad tím hlavy několik hodin.

 
Nahoru Odpovědět
+1
15.1.2016 9:50
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.