logo   XML - Import.




XML-data importeres til PHP med funktionen:

$xxx = simplexml_load_file( importeret XML-fil );


Selvom der er ret så stramme regler for, hvordan en XML-fil kan opbygges, kan der forekomme en del forskellige strukturelle kombinationer.


Kodemæssigt er det en udfordring at der er flere måder at håndtere kodningen på - ikke at der er flere måder at løse den samme situation på, men at der i betydelig udstrækning skal benyttes en specifik individuel motede for den enkelte strukturelle kombination.


Det synes at være en ufravigelig forudsætning for at få overblik over de forekommende strukturer i en XML-fil at den indledningsvis vises med 'print_r()'.


Al udtræk af data tager udgangspunkt i 'roden' (level 0) enten direkte eller via 'tagstier' (level 1 - x).


Ved kodning skal tagnavne der indeholder '-' (bindestreg) kodes som {'tag-navn'}.


// print_r
$rod = simplexml_load_file('http://www.nationalbanken.dk/_vti_bin/DN/DataService.svc/CurrencyRatesXML?lang=da');
echo "<pre>";
print_r($rod);
echo "</pre>";


Selvom XML-dataene kan udtrækkes til en variabel med individuelt navn er alle udtræk nedenfor foretaget til '$rod'.


Nedenfor er vist en række typiske strukturer og den kode der skal benyttes for at hente deres data:


Attributter fra rod


$rod = simplexml_load_file("http://www.nationalbanken.dk/_vti_bin/DN/DataService.svc/CurrencyRatesXML?lang=da");
echo $rod['type']. "<br />";
echo $rod['author']. "<br />";
echo $rod['refcur']. "<br />;
echo $rod['refamt']. "<br />";



Level 2 med attributter


$rod = implexml_load_file("http://www.nationalbanken.dk/_vti_bin/DN/DataService.svc/CurrencyRatesXML?lang=da");
foreach ($rod->dailyrates->currency as $curr) {
echo $curr->attributes()->code. "<br />";
echo $curr->attributes()->desc. "<br />";
echo $curr->attributes()->rate. "<br />";
}



Level 1 med tags


$rod = simplexml_load_file('http://www.hvemstemmerhvad.dk/api/api_politikere.php');
foreach($rod -> politiker as $polit){
echo $polit -> mp_id_hvh . "<br />";
echo $polit -> party_id_hvh . "<br />";
echo $polit -> link_hvh . "<br />";
echo $polit -> acronym_ft . "<br />";
echo $polit -> fulde_navn . "<br />";
echo $polit -> valgkreds_hvh . "<br />";
echo $polit -> email . "<br />";
echo $polit -> birthday . "<br />";
echo $polit -> active . "<br />";
echo $polit -> adresse . "<br />";
echo $polit -> homepage . "<br />";
echo $polit -> twitter . "<br />";
echo $polit -> position . "<br />";
echo $polit -> personal_votes . "<br />";
}



Tags fra rod


$rod = simplexml_load_file('https://www.quandl.com/api/v1/datasets/DOE/RBRTE.xml');
echo $rod -> id . "<br />";
echo $rod -> {'source-name'} . "<br />";
echo $rod -> {'source-code'} . "<br />";
echo $rod -> code . "<br />";
echo $rod -> name . "<br />";
echo $rod -> {'urlize-name'} . "<br />";
echo $rod -> {'display-url'} . "<br />";
echo $rod -> description . "<br />";
echo $rod -> {'updated-at'} . "<br />";
echo $rod -> frequency . "<br />";
echo $rod -> {'from-date'} . "<br />";
echo $rod -> {'to-date'} . "<br />";




























x
x