Manier 3: Als XML
Bij XML kan je overal je gegevens uitbreiden, alle kanten op. En al je gegevens in je antwoord zijn mooi gelabeld, dus het is duidelijk voor buitenstaanders, of jezelf over 1 jaar.
Nadeel is de grote hoeveelheid code die je meestuurt (voor iedere waarde moet je 2 maal een sleutel meesturen. Een begin-tag en een eind-tag.) en de nog grotere hoeveelheid code die je nodig hebt om de boel te parsen. Dit gaat bijna hetzelfde als het parsen van de html-pagina.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var antwoord = XMLHTTPObject.responseXML;
var root = antwoord.documentELement;
var boeken = root.getElementsByTagName('boek');
var schrijver = null;
var titel = null;
var paginas = null;
for(i = 0; i < boeken.length; i++)
{
paginas = getNodeValue(boeken.item(i), 'paginas');
schrijver = getNodeValue(boeken.item(i), 'schrijver');
titel = getNodeValue(boeken.item(i), 'titel');
alert('Titel:'+titel+'\n'
+'Auteur:'+schrijver+'\n'
+'Pagina\'s'+paginas);
}
function getNodeValue(obj,tag)//dankje Peter Paul Koch (www.quikrsmode.org)
{
return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
}
?>
Het antwoord ziet er dan ongeveer zo uit:
<boeken>
<boek>
<titel>De Ijzeren Wil</titel>
<schrijver>Bas Haring</schrijver>
<paginas>168</paginas>
</boek>
</boeken>
[red]Let wel op dat waneer je het antwoord met PHP maakt, je de header ‘Content-type: application/xml’ meestuurt, anders wordt het niets, en ziet javascript het gewoon als saaie HTML, en bestaat het reponseXML niet eens.[/red]
Inhoudsopgave
- Introductie/verklaring van het buzz-word
- Javascript Events
- Javascript Events (overbodige extra's)
- Het XMLHTTPRequest object - het object aanmaken
- Het XMLHTTPRequest object - het object zijn parame
- Het XMLHTTPRequest object - de cliff-hanger verkla
- De afhandeling van de vraag
- De 4 manieren van het schrijven van data
- Manier 1: Gewone HTML
- Manier 2: Platte tekst
- Manier 3: Als XML
- Manier 4: JSON