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?

Het xml bestand is als volgt opgebouwd:

<month value="4">
<day value="14">
<label>Rommelmarkt Lemmer Museumweekend</label>
<description>Rommelmarkt Plaats: Lemmer; Riensingel 4 Tijd: 10.00-15.00</description>
</day>
</month>
etc...
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;

</script>

</body>
</html>

Top ga hier morgen mee aan de slag, thnx
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?
Top precies wat ik zocht, alleen 1 probleem nog..

// verander [0] naar [1] om de tweede <month> tag in te lezen enzovoorts

is er een manier om dit automatisch elke dag 1 punt op te laten tellen?

<month> kan ik elke maand wel veranderen eventueel maar met dagen zou het toch wel prettig zijn.
Waarom gebruik je daar XML voor, een databse werkt toch veel gemakkelijker?
@Ger een database is soms te veel, voor kleine scripts heb je niet per se een database nodig.
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.
Sander Zijnstra op 30/10/2012 00:12:38


is er een manier om dit automatisch elke dag 1 punt op te laten tellen?



Jazeker je bedoelt op 1 november dan alleen [1] en op 2 november [1] en [2] enzovoort?

Reageren