Hledat
Přihlásit se
  • Věda a technika
  • Herní doupě
  • Tipy pro PC
  • IT Byznys
  • Mobily
  • Počítače
  • Počítače
  • Témata
  • Poradna
  • Diskuzní fórum
  • Video
  • Bazar
  • Blogy
  • MĚŘENÍ RYCHLOSTI
  • RSS
  • Facebook Twitter Google+ YouTube
  • Hardware
  • Software
  • Počítače
  • Notebooky
  • Služby na webu
  • Apple
  • Google
  • Microsoft
  • Seznam
  • Tiskové zprávy
Další témata
  • Týden Živě
  • Zprávy Živě
  • Testy
  • Pitvy
Všechna videa
Blogy Živě » O programování a všem okolo

O programování a všem okolo

Články vytvořil Jiří Hrebenar
 

Archiv rubriky „XML“

SimpleXML - jednoduše na XML v PHP 2.díl

Jsem tu opět s povídáním o používání SimpleXML v PHP. V minulém díle jste se dozvěděli základy používání a hlavně také jakým způsobem číst jednoduše dokument XML. Dnes bychom se měli zabývat čtením smíšeného obsahu.

Pokračování příspěvku » »


11. 12. 2009 | gisat_cz | 0

SimpleXML - jednoduše na XML v PHP 1.díl

Hlavním tématem tohoto článku je pokus o jednoduchý exkurz do práce s XML. Určitě mnohokrát se Vám stalo, že jste při svém programování v PHP narazili na potřebu komunikovat se souborem v tomto formátu. Právě jednou možnou cestou je použití tzv. SimpleXML.

Pokračování příspěvku » »


8. 12. 2009 | gisat_cz | 0

Čtení XML v PHP pomocí parseru

Před tím, než začnu popisovat základní principy nakládání se soubory XML v prostředí programovacího jazyka PHP, si musíme ujasnit co to vlastně soubory XML jsou.

Soubory ve formátu XML jsou v současnosti velmi hojně využívány.  Jedná se totiž o univerzální typ. Moderní technologie jsou hojně založeny na tomto formátu. Je velmi jednoduchý a přehledný. Narozdíl od HTML není tak spjatý s konvencemi, můžete vytvářet tagy podle svého. To co si nemůžete dovolit v HTML si můžete naopak dovolit  zde. XML nám umožňuje vytvářet sktrukturované dokumenty. “Sktrukturované” znamená, že budou obsahovat “značky” a “znaky”.

Existuje spoustu technik zpracování XML v jazyku PHP. My si zde ukážeme jeden z možných způsobů. Budeme číst dokument XML pomocí parseru .

První co si vytvoříme bude XML soubor:

<?xml version=”1.0″ encoding=”UTF-8″?>
<adresy stav_k=”26. červnu 2009″ typ=”obce s rozsirenou pusobnosti,obce”>
<oblast typ=”obec_s_rozsir_pusob” nazev=”AŠ” kraj=”KARLOVARSKÝ” okres=”CHEB”>
<obec nazev=”AŠ” muzi=”6638″ zeny=”6858″/>
<obec nazev=”HAZLOV” muzi=”846″ zeny=”834″/>
<obec nazev=”HRANICE” muzi=”1097″ zeny=”1168″/>
</oblast>
<oblast typ=”obec_s_rozsir_pusob” nazev=”BENEŠOV” kraj=”STŘEDOČESKÝ” okres=”BENEŠOV”>
<obec nazev=”BENEŠOV” muzi=”8011″ zeny=”8646″/>
<obec nazev=”BUKOVANY” muzi=”351″ zeny=”350″/>
</oblast>
</adresy>

XML soubory můžete vytvářet v jakémkoli editoru, například v Notepadu, Dreamweavru, či nějakém dalším. Co výše uvedený kód znamená? Postupně si projdeme jednotlivé řádky našeho kódu:

<?xml version=”1.0″ encoding=”UTF-8″?>

Tímto deklarujete dokument XML a také u něj stanovíte patřičné kódování. Stanovení kódování je velmi důležité, zařídíte tak, aby se  text zobrazoval správně. Abych byl přesný ono kódování nemusí být uvedené v dokumentu XML, ale můžeme ho uvést v onom “tajemném” parseru.

Každý XML dokument má tzv. kořenový element, zde element <adresy>, ostatní elementy jsou vloženy do těla kořenového elementu. Vytváření XML dokumentů se pokusím nastínit v některém pozdějším článku.

Vytvoření souboru zpracuj_xml.php:

Druhým krokem vytvoříte soubor zpracuj_xml.php, v něm budeme číst obsah XML dokumentu, respektive zobrazíme atribut nazev elementu obec:

Nejprve vytvoříme XML parser pomocí funkce xml_parser_create. Pokud by došlo k nějaké chybě, parser by vrátil false. Zde, jak bylo řečeno, také do  závorek funkce můžeme uvést patřičné  kódování(ISO-8859-1 nebo UTF-8).
$parser=xml_parser_create();

//—————————————————-

Vytvoříme obsluhu počátečního tagu elementu, tedy co se má po počáteční značce udělat. V našem případě zjistíme pomocí funkce PHP (pro regulární výrazy:eregi) jestli název elementu obsahuje slovo obec a pokud ano tak se vypíše hodnota jeho atributu označeného slovem název.

Funkce pro obsluhu počátečního tagu  elementu,  by měla ve svých argumentech obsahovat  na prvním místě proměnou pro paeser, dále proměnou pro jméno počátečního tagu elementu a naposled proměnou pro atributy .
function zacatek_elem($parser,$jmeno,$atributy) {
if(eregi(”obec”, $jmeno)){
echo $atributy["NAZEV"].”<br/>”;
}
}

//——————————————————

Vytvoříme obsluhu koncového tagu elementu. Možná se Vám tento krok zdá být zbytečným, ale rozhodně tomu tak není. Uvedení funkcí pro obsluhy počátečních i koncových tagů elementů musí být vždy uvedeny. Funkce pro obsluhu koncového tagu elementu by měla ve svých argumentech obsahovat ma prvním místě proměnou parseru a poté jméno koncového tagu elementu:
function konec_elem($parser,$nazev) {}

//——————————————————-

Parser bude číst tento kód a narazí na počáteční a konečný tag elementu a proto musíme tzv. zaregistrovat obslužné funkce daného elementu. Registraci provedeme pomocí funkce  xml_set_element_handler, opět jeho  parametry jsou,  proměná parseru, funkce pro obsluhu počátečního a koncového tagu elementu. Obě dvě funkce uvedeme v uvozovkách bez parametrů:
xml_set_element_handler($parser,”zacatek_elem”,”konec_elem”);

//——————————————————–

Dále nás čeká jen načíst XML soubor a umožnit tak vypsání atributů nazev elementu obec:

Otevřeme XML dokument
$nazev_souboru_xml=”acko.xml”;
Pokud nedojde k otevření dokumentu vypíše se varovná hláška
if(!($soubor = fopen($nazev_souboru_xml,”r”))) {
die(”Nelze otevřít soubor “.$nazev_souboru_xml.”!”);
}
else {

A pak budeme predavat data parseru (treba po 4096 bytech):
while ($d = fread($soubor, 4096)) {
if(!xml_parse($parser, $d, feof($soubor))) {
die(”Chyba XML”);
}}}

//————————————————-

Pokud jste vše dělali správně, výsledek by měl vypadat takto: pod sebou napsány jména měst uvedených v atributech název elementu obec.


17. 7. 2009 | gisat_cz | 0


Aktuální články a bleskovky

Lenovo uvádí nové ThinkPady s čipy Ivy Bridge
Lenovo uvádí nové ThinkPady s čipy Ivy Bridge
Brýle Google Glass jsou patentované
Brýle Google Glass jsou patentované
Ifttt.com: Propojte a automatizujte svůj internet
Ifttt.com: Propojte a automatizujte svůj internet
Nejlepší programy pro práci s Wi-Fi
Nejlepší programy pro práci s Wi-Fi



O programování a všem okolo využívá WordPress MU a běží na Blog.zive.cz. Vytvořte si svůj vlastní blog
Sledování přes RSS: články a komentáře


  • Archivy

    • Duben 2012
    • Květen 2011
    • Leden 2011
    • Prosinec 2010
    • Listopad 2010
    • Říjen 2010
    • Květen 2010
    • Březen 2010
    • Únor 2010
    • Leden 2010
    • Prosinec 2009
    • Září 2009
    • Srpen 2009
    • Červenec 2009
    • Srpen 2008
  • Rubriky

    • AJAX (7)
    • Awk a sed (2)
    • CSS, HTML (3)
    • Java (3)
    • Javascript (25)
    • Javascript frameworky (4)
    • Nezařazené (11)
    • Opensource (21)
    • Ostatní (10)
    • PHP (7)
    • PHP,MySQL a APACHE (1)
    • Ruby (16)
    • Sociální sítě (15)
    • UNIX (5)
    • XML (3)
    • Zprávy (61)
  • Spřátelené blogy

    lara.111: my clever blog
  • Twitter

    • Oh miluju krásné kytky, je normální když chlap má rád kytky? :-D~~~amp~~~lt;3 Jo já vím, jsem netradiční, to jsem prostě já... http://t.co/PoghKVpG
    • Haha :-)~~~amp~~~lt;3 http://t.co/R28S4u0Z
    • http://t.co/ZPcDPjdA
    • http://t.co/byQssIuP
    • Netřeba konspiračních teorií, pokud někdo krade, je zloděj. Pokud se někdo nechá uplácet, je to křivák. S... http://t.co/UeNF8J2Q
  • Administrace

    • Přihlásit se

1210_Computer.png

Časopis Computer

  • Nakupujte v zahraničí
  • Test 7 čteček elektronických knih
  • Technologie: nové standardy digitálního vysílání
  • Přehled cloudových uložišť
  • Poradíme s výběrem kamery na dovolenou

Partnerská sekce pro IT profesionály:
Microsoft TechNet/MSDN


Video Živě

Bluetooth stojánky pro Android: Philips AS111, AS141 a AS351
Ifttt.com -- založení úkolu
Zprávy Živě - 12. května 2012
iPad docky Logitech AV Stand a Logitech Speaker Stand

další videa »






Mladá Fronta a.s. Mladá Fronta a.s.
Tiráž | Autoři | Připomínky | Odběr novinek | RSS | Textová verze
Copyright 2000–2012 Mladá fronta a.s. | Inzerce: onlinesales@mf.cz | Kontakt na redakci | Návštěvnost měří NetMonitor