Door
Sander Zijnstra
op 28-10-2012 22:45
gewijzigd op 28-10-2012 22:46
1.799 views
Ik heb een kalender in een xml bestand. Nu zou ik graag de eerste 3 volgende activiteiten op mijn hoofdpagina willen laten zien. Dit moet dus elke dag veranderen naar de 3 volgende activiteiten. Weet iemand een script waarmee ik dit kan bereiken?
Gebruik [php]SimpleXml[/php] om het bestand uit te lezen. Maak een kleine functie die ze sorteert, bij voorkeur een algoritme om tijd te besparen, en een functie die dan de eerste 3 pakt.
Het commentaar staat in de code. Wel zelf even uitbreiden en niet vergeten om note.xml om te noemen naar jouw eigen bestandsnaam. groeten
<!DOCTYPE html>
<html>
<body>
<div>
<!-- tussen de spans hieronder wordt de tekst uit het xml-bestand weergegeven. -->
<span id="month_span"><!-- month --></span><br>
<span id="label_span"><!-- label --></span><br>
</div>
<script>
// functie voor het ophalen van een xml-bestand.
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","note.xml",false);
xmlhttp.send();
// het xml-bestand wordt opgeslagen in xmlDoc.
xmlDoc=xmlhttp.responseXML;
// zet de "value" attribute van de <month> tag in het element met id "month_span"
// verander [0] naar [1] om de tweede <month> tag in te lezen enzovoorts
document.getElementById("month_span").innerHTML=
xmlDoc.getElementsByTagName("month")[0].getAttribute("value");
// zet de eerste <label> tag in het element met id "label_span"
// verander [0] naar [1] om de tweede <label> tag in te lezen enzovoorts
document.getElementById("label_span").innerHTML=
xmlDoc.getElementsByTagName("label")[0].childNodes[0].nodeValue;
Euhm... Frank, als je hem met AJAX binnenlaadt, vergeet niet dat dit alleen werkt als het op je eigen server staat. Tenzij er een orgin-header mee wordt gestuurd.
Ik denk dat het voor de TS geen probleem is, maar ik wou het toch even kwijt.
Thanks Aar. Goede aanvulling. Even gegoogled.. moet een beveiliging zijn tegen ongewenste cross site requests?
Kan ik ergens in normale taal mijn kennis hierover uitbreiden?
Koen, het gaat niet om hoe groot het script is, maar om de informatie waarmee het moet werken. Databases zijn over het algemeen veel beter beheersbaar, onderzoekbaar enz.