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í.

PHP: Čítanie XML triedou SimpleXML

V predchádzajúcej lekcii, Práca s textovými súbormi v PHP , sme sa zoznámili s niekoľkými základnými jednoúčelovými funkciami, ktoré v PHP používame pre prácu (nielen) s neštruktúrovanými textovými súbormi.

V článku PHP: Čítanie XML metódou SAX som sa zmienil, že metódu SAX by ste mali používať len v špeciálnych prípadoch. Teraz si ukážeme iný spôsob: Triedu SimpleXML.

Trieda SimpleXML je určená pre jednoduchú konverziu dokumentu XML do objektov v PHP. Na rozdiel od triedy XMLreader však dokument nečítame v cykle po jednotlivých elementoch, ale je celý načítaný to objektové štruktúry. To je veľmi výhodné, pretože najpomalší úkon vykonáva štandardná knižnica, ktorá je pre tento účel optimalizovaná.

Pre čítanie som opäť použil rovnaké údaje.

<?xml version="1.0" encoding="UTF-8"?>
<uzivatele>
 <uzivatel vek="22">
  <jmeno>Pavel Slavík</jmeno>
  <registrovan>21.3.2000</registrovan>
 </uzivatel>
 <uzivatel vek="31">
  <jmeno>Jan Novák</jmeno>
  <registrovan>30.10.2012</registrovan>
 </uzivatel>
 <uzivatel vek="16">
  <jmeno>Tomáš Marný</jmeno>
  <registrovan>12.1.2011</registrovan>
 </uzivatel>
</uzivatele>

Program Vyhlasujúca dáta je veľmi krátky. Pôvodne som chcel vytvoriť aj triedu Uzivatel, ale bola takmer prázdna. Preto som použil iba jednu triedu.

<?php
$data=new Uzivatele('data.xml');
echo $data,"\n";

class Uzivatele {
  private $seznam;

  function __construct($souborXML) {
    $this->seznam=new SimpleXMLElement($souborXML, NULL, TRUE);
  }

  function __toString() {
    $out=array();
    foreach($this->seznam as $uzivatel) {
      $out[]=sprintf("%-20s %2d %10s",$uzivatel->jmeno,$uzivatel['vek'],$uzivatel->registrovan);
    }
    return implode("\n",$out);
  }
}

Podľa potreby je možné doplniť metódy pre vyhľadanie užívateľa, overenie hesla a pod. Pre náš účel postačí obyčajný výpis zoznamu používateľov. Po spustení skriptu sa objaví:

Pavel Slavík        22  21.3.2000
Jan Novák           31 30.10.2012
Tomáš Marný         16  12.1.2011

Ako je vidieť, čítanie dokumentu triedou SimpleXMLElement je oveľa jednoduchšie, ako čítanie metódou SAX. Je asi 10 × rýchlejší, než XMLreader a tiež je lepšie zdokumentovaná. Pre spracovanie bežných dokumentov XML je preto omnoho výhodnejšie.

V budúcej lekcii, Práca so súbormi CSV v PHP , sa zoznámime s prácou so súbormi pomocou tzv. Resources a so štruktúrovanými súbory vo formáte CSV. Znalosti uplatníme v praktickom príklade - jednoduchom webovom plánovača úloh:-)


 

Predchádzajúci článok
Práca s textovými súbormi v PHP
Všetky články v sekcii
Práca so súbormi v PHP
Preskočiť článok
(neodporúčame)
Práca so súbormi CSV v PHP
Článok pre vás napísal Kit
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Jsem spokojeným uživatelem operačních systémů založených na linuxovém jádře. Zejména openSUSE a Ubuntu. Pro psaní veškerých textů a programů používám vynikající textový editor Vim. Aplikace se snažím psát vždy v tom nejvhodnějším programovacím jazyk...
Aktivity