NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Hodnota z XML

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

Aktivity
Avatar
roverjedla
Člen
Avatar
roverjedla:6.6.2017 21:59

Ahoj,

chtěl bych se zeptat, jak nejjednodušeji získat určitou hodnotu z XML. Konkrétně to vypadá následovně:

<first xxx="TOTO POTREBUJI" yyy="TOTO POTREBUJI 2">
        <values>
                ...
                ...
                ...
        </values>
</first>

Když mám případ, že vytahuji hodnotu, v tomto případě mezi <first></first>, tak je to naprosto v pořádku a vše funguje jak má. Problém nastává ve chvíli, kdy potřebuji získat hodnotu, která se nachází přímo v párovém tagu a ne mezi nimi.

Díky za rady.

 
Odpovědět
6.6.2017 21:59
Avatar
Odpovídá na roverjedla
Uživatel sítě :7.6.2017 17:48

Ahoj, na toto bych použil regulární výraz:

preg_match('~<first xxx="(.*?)" yyy="(.*?)">~is', $content, $match);

Pokud očekáváš více tagů tak použij místo preg_match -> preg_match_all.

Nahoru Odpovědět
7.6.2017 17:48
Chybami se člověk učí, běžte se učit jinam!
Avatar
roverjedla
Člen
Avatar
Odpovídá na Uživatel sítě
roverjedla:7.6.2017 23:31

No jde o to, že v XML souboru mám příkladů co jsem uvedl stovky/ tisíce a nemyslím si, že je vhodné dělat to přes regulární výraz. Stačilo by, aby jeden prvek byl jiný než ty ostatní a celý výsledek by se rozhodil => z příkladu výše tahám mimo dotazované hodnoty asi dalších 8 hodnot. Pokud by byl tedy jeden prvek jiný (chyběly by dotazované hodnoty etc.), automaticky by se našel další nejbližší výsledek a ten se přiřadil k hledaným hodnotám. Měl bych spolu svázané tedy poté hodnoty, které k sobě nepatří.

Takovýto případ by nastát neměl, nemůžu v programu však nechat takovouto mezeru...

 
Nahoru Odpovědět
7.6.2017 23:31
Avatar
Odpovídá na roverjedla
Uživatel sítě :7.6.2017 23:52

Jasný, nevěděl jsem o struktuře tahaných dat a že by nějaké atributy mohly chybět.

Tak ještě možná simplexml_load_strin­g.

Tento příklad použití by tě mohl nasměrovat:
http://php.net/…d-string.php#…

Nahoru Odpovědět
7.6.2017 23:52
Chybami se člověk učí, běžte se učit jinam!
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 4 zpráv z 4.