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 ("<$meno><br></br>");
} //startElement
// a podobne vypis koncoveho elementu
function endElementHandler($parser,$meno,$atributy) {
echo ("</$meno><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
|