TechNET: Developer · Mobilmánia · Wapko * EASY www.dobijanie.sk *
MAJACIK HLAVNY IMAGE STRANKY
30. Januára 2003, Štvrtok 
Lekcia 13 - PHP a XML IV - XML API
 

XML API

PHP podporuje mnozinu funkcií pre prácu s XML, na základe ktorých môžeme v jazyku PHP vytvárať funkčné XML aplikácie. Nebudem sa tu zmieňovať o podrobnostiach práce XML parsera, záujemcov odkazujem na príslušnú dokumentáciu. PHP využíva XML parser expat, ktorý nekontroluje platnosť XML a preto nevygeneruje žiadny warning či chybové hlásenie, ak je dokument neplatný.  XML rozšírenie v PHP podporuje UNICODE s dvomi rozdielnymi kódovaniami, zdrojovým a cieľovým kódovaním. Implicitne je použitá norma kódovania ISO 8859-1 /Latin1/, ktorú však odporúčam zmeniť na ISO 8859-2 /LATIN2/, nakoľko obskúrne WIN1250 je len Windows štandard, zvyknite si preto hneď v úvode na ISO 8859-2. Ak namietnete, že primárne píšete /kódujete/ vo Win, Frontpage či EasyPAD Lite umožňujú konverziu znakových sád. Easy Pad Lite nájdete aj u nás v sekcii download.

Knižnicu expat (XML Parser) nájdete na http://www.jclark.com/xml/expat.html Nezabudnite, že PHP implicitne neobsahuje podporu XML, takže je nutné pri konfigurácii PHP použiť direktívu --with-xml. Ak sa nájdu ľudia, ktorí si to nevedia skompilovať, pokúsim sa im to spraviť, nech sa mi ozvú mailom. 

XML API

Každý skript, ktorý spracúva XML dokument musí vykonať nasledujúce operácie:

  • Inicializovať XML parser
  • Zaregistrovať si handler na parser.
  • Čítať XML dáta a posielať ich XML parseru
  • Po skončení načítania uvoľniť XML parser z pamäte

Tak, a prvý a posledný príklad na dnes:

<?php

// vytvoríme funkciu pre vypis zac. elementu
function startElementHandler($parser,$meno,$atributy) {
  echo ("&lt;$meno&gt;<br></br>");
} //startElement

// a podobne vypis koncoveho elementu

function endElementHandler($parser,$meno,$atributy) {
  echo ("&lt;/$meno&gt;<br></br>");
} //endElement

// a funkciu pre vypis dat

function dataElementHandler($parser,$data) {
  echo ("$data<br></br>");
} //endElement

// a ideme na vec - zaregistrujeme XML parser
// startElementHandler , endElementHandler a dataElementHandler

$parser = xml_parser_create();
xml_set_element_handler($parser,"startElementHandler","endElementHandler");
xml_set_character_data_handler($parser,"dataElementHandler");

$subor = "pokus.xml";
if (!($fp = fopen($subor,"r+"))) {
   die ("nemôžem načítať súbor");
}

//čítaj a parsuj

while ($data = fread($ft,4096)) {
  if (!xml_parse ($parser,$data,feof($fp))) {
     die ("XML chyba %d %d ",xml_get_current_line_number($parser,
           xml_get_current_column_number($parser)));

   } //while
}

?>

Súbor pokus.xml obsahuje toto:

<?xml version="1.0"?>
<knihy>
  <kniha>PHP</kniha>
  <kniha>ASP</kniha>
  <kniha>HTML</kniha>
</knihy>
    

takže po spustení nášho scriptu by sme mali dostať nasledujúci XML výstup:

<KNIHY>

<KNIHA>
PHP
</KNIHA>

<KNIHA>
ASP
</KNIHA>

<KNIHA>
HTML
</KNIHA>

</KNIHY>

V ďalších častiach tutorialu (opäť len pre členov klubu PHP) už budeme preberať presný popis XML funkcií a ich použitie... Ak ešte nie ste členom, nezabudnite sa prihlásiť








N Á V R A T

Copyright 2003 MGX


 
Dnes má meniny
Ema
nic.sk - domeny + hosting
PHP Club

Klub
 Registrácia
 Informácie
Special
 XML I diel
 
XML II diel
 
XML III diel
 
XML IV diel
 
XML V diel
 
XML VI diel
 
XML VII diel
 
XML VIII diel
 
XML IX diel
 
Anketa č. 21
Považujem sa za...
(Odpovedalo už 1579 ľudí)

PHP guru (157)
 10%
Perfektného programátora v PHP( 117)
 7%
Strednú triedu (373)
 24%
Začiatočníka (743)
 47%
Čo je PHP ? (189)
 12%

Klikni na zvolenú odpoveď!
Výsledky minulých ankiet.
 
Diskusia

PRÍSPEVKY
 Podľa tém
 Podľa dáta
 Podľa klikov
 Iba dnešné

UTILITY
 Registrácia
 Zmena hesla
 Zmena profilu

Dobré linky:
PC News
Developer
  (c) 2003 www.php.sk