Keskustelut - PHP - XML:n tuottaminen PHP:llä


gurdi 12:38 13.9.05 
Morjens,

PHP:llä pitäisi vääntää XML-dokumenttia tietokannan datasta. Mistä kannattaisi lähteä liikenteeseen, käytössä on php4. Manuskan mukaan ko. versiossa on mukana lähinnä XML-dokumentin lukeminen ja parserointi. Viitosesta taitaisi löytyä kunnollinen oliopohjainen toteutus xm-dokumentin luontiin, mutta miten se nelosella pitäisi hoitaa?

Tekisin mielellään kerralla järkevästi toimivan systeemin, jota voisi käyttää uudelleenkin. Tarvetta siirtää dataa kannasta on kuitenkin jatkossakin, tauluformaatti taas muuttuu joka kerta. Pitäisi siis pystyä tekemään jokin määrittelydokumentti missä xml-dokun tietoalkio linkittyy tiettyyn tietokantataulun sarakkeeseen.

Auttakaas aloittelijaa, XML on vierasta, PHP sen sijaan melko hyvin hanskassa.



editoitu: 14:28 13.9.05
petri_koo 14:26 13.9.05 
kannattaa eka opetella XML ilman PHPtä :) Google käyttöön: Xml examples
ota XML kielen kanssa huomioon entitiet
Juice_ 19:43 13.9.05 
editoitu: 17:20 14.9.05
empty 17:20 14.9.05 
Niin siis mietitäänpäs mitä se XML oikeastaan on. XML on dokumentin rakenteen kuvauskieli, ja esim XHTML on XML-johdannainen (ok ei ihan puhtaasti), XHTML on taas aika lähellä HTML:ää. Ja sitten mietitään miten sitä HTML:ää tuotetaan php:lla.

Yksinkertainen esimerkki.

//haetaan vaikkapa tietokannan taulut ja niiden kentät hirarkiseen taulukkoon
<?php
$taulut = $tietokanta->haeSkeema();

//tulostetaan xml-dokumentti
?>

<?xml version="1.0" encoding="iso-8859-1" ?>
<tietokanta>
<?php foreach($taulut as $taulu)?>
   <taulu nimi="<?php echo $taulu['nimi'] ?>">
      <?php foreach($taulu['kentat'] as $kentta)?>
          <kentta nimi="$kentta['nimi]'"></kentta>
      <?php } ?>
   </taulu>
<?php } ?>
</tietokanta>


Eli ei se xml niin hirveästi eroa esim. html:stä. PHP5:sta löytyy tosin DOM (Document Object Model) - kirjasto jolla homma voidaan hoitaa täysin oliopohjaisesti. Ja vaikka en tiedäkkään tarkemmin mitä olet tekemässä, niin kannattaa myös miettiä että tarvitsetko välttämättä sitä XML:ää, yleensä siitä on oikeasti hyötyä vain järjestelmien välisien rajapintojen ja siirtotiedostojen standardisoinnissa.