XML-tiedoston pääte on .xml ja tiedoston alussa xml-elementissä kerrotaan xml-versio sekä tekstin koodaustapa (Ä.Ö ja Å kirjaimet eli
tiedostossa käytetään ia aakkosia.
Seuraaville elementeille ohjelmoitsija saa antaa vapaasti nimet, suositus ettei elementtien nimissä
käytetä Ä, Ö tai Å kirjaimia.
>Elementtien nimet kannattaa valita kuvaamaan xml-tiedostoon tallennettavia asioita.
Sisimpiä elementtejä voi kutsua objekteiksi joilla on arvo, arvo voi olla numero tai merkkijono.
Kohdassa XML-tiedoston luominen, luodaan autot.xml tiedosto johon voidaan tallentaa tietoja useista autoista, ylimmän tason elementin nimi
on autot. Seuraavan tason elementin nimi on merkki, jolloin tiedosto voi sisältää useita auto-merkkejä ja usean nimisiä autoja sekä näiden
malleja.
Halutaan luoda seuraava autot.xml niminen XML-tiedosto:
<?xml version="1.0" encoding="UTF-8"?>
<autot>
<merkki id="1">
<nimi>Skoda</nimi>
<malli>Octavia</malli>
<kori>sedan</kori>
</merkki>
</autot>
Luodaan autot.xml tiedosto:
<?php
$dom = new DOMDocument('1.0','UTF-8');
$dom->formatOutput = true;
$root = $dom->createElement('autot');
$dom->appendChild($root);
$merkki = $dom->createElement('merkki');
$root->appendChild($result);
$merkki->setAttribute('id', 1);
$merkki->appendChild( $dom->createElement('nimi', 'Skoda') );
$merkki->appendChild( $dom->createElement('malli', 'Octavia') );
$merkki->appendChild( $dom->createElement('kori', 'sedan') );
echo '<xmp>'. $dom->saveXML() .'</xmp>';
$dom->save('autot.xml') or die('XML Create Error');
?>
XML-tiedoston henkilo.xml koodaus:
<?xml version="1.0" encoding="UTF-8"?>
<henkilo status = "ok">
<opiskelija henk_no = "11">
<nimi>Anttonen Antti</nimi>
<luokka>G-404</luokka>
<opiskelija>
<opiskelija henk_no = "12">
<nimi>Virtanen Ville</nimi>
<luokka>E-512</luokka>
</opiskelija>
</henkilo>
PHP-koodaus jolla näytetään xml-tiedoston kaikki tiedot:
<?php
$xml = simplexml_load_file('http://tietokanta.dy.fi/ohjelmointi/uusi_opiPHP/POISTA/PHP_XML/henkilo.xml');
echo '<h3>Henkilö listaus</h3>';
$lista = $xml->opiskelija;
for ($i = 0; $i < count($lista); $i++) {
echo '<b>Henkilo no:</b> ' . $lista[$i]->attributes()->henk_no . '<br>';
echo 'Nimi: ' . $lista[$i]->nimi . '<br>';
echo 'Luokka: ' . $lista[$i]->luokka . '<br><br>';
}
?>
Tämä esimerkki sivu hakee xml-tiedoston palvelimelta jolloin tiedoston osoite täytyy olla tiedoston
www-osoite.
Jos xml-tiedosto käsitellään php-koodauksella joka siirtää xml-tiedot esimerkiksi
muuttujilla, xml-tiedoston osoitteeksi riittää tiedoston nimi.
Esimerkeissä käytettävä kirjasto.xml niminen XML-tiedosto:
<?xml version="1.0" encoding="UTF-8"?>
<kirjasto>
<kirja>
<nimi> Hopeisen hummerihaarukan tapaus </nimi>
<kirjoitttaja tyyli="rikos"> Alan Bradley </kirjoittaja>
<tiedot> Hurmaava yksitoistavuotias harrastelijasalapoliisi Flavia de Luce uskaltautuu kylän markkinoilla
mustalaisnaisen telttaan ja järkyttyy kuulemastaan ennustuksesta pahanpäiväisesti. </tiedot>
</kirja>
<kirja>
<nimi> Kyberias </nimi>
<kirjoitttaja tyyli="scifi"> Stanislaw Lem </kirjoittaja>
<tiedot> Kyberiaksen utopistinen maailma robotteineen ja huimine keksintöineen muistuttaa oudolla tavalla omaamme
– sen ihmisiä ja instituutioita. </tiedot>
</kirja>
<kirja>
<nimi> PATRIARKKOJA JA OLIGARKKEJA </nimi>
<kirjoitttaja tyyli="elämänkerta"> Rene Nyberg </kirjoittaja>
<tiedot> Pitkän diplomaattiuran tehneen Venäjän-tuntijan esseekirja kertoo Suomen ja Venäjän lähihistoriasta,
mutta valaisee myös Neuvostoliiton todellisuutta </tiedot>
</kirja>
</kirjasto>
Ladataan kirjasto.xml niminen XML-tiedosto kirjat- nimisen objektiin ja näytetään sen sisältö var_dup() funktiolla:
Edellä tulee testatuksi onko xml-tiedosto kirjoitettu oikein, mikäli ei ole koodaus antaa ilmoituksen false-ilmoituksen. Tässä muodossa tulostus ei ole mitenkään hyödyllinen muutoin kuin tutkittaessa tarkemmin sen sisältöä.
Paremmin muotoillun tulosteen xml-tiedoston sisällöstä saa asXML()-metodilla.
Haluttaessa xml-tiedoston sisällöstä esittää kaikki kirjailijat tulosteen saa xpath()-metodilla:
Esimerkin koodaus:
<?php
$tiedot = simplexml_load_file('http://tietokanta.dy.fi/ohjelmointi/uusi_opiPHP/POISTA/PHP_XML/kirjasto.xml');
$kirjailijat = $tiedot->xpath("/kirjasto/kirja/kirjoittaja");
foreach($kirjailijat AS $kirjoittaja){
echo $kirjoittaja . "<br/>";
}
?>