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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="UTF-8"?>

<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]

« Lees de omschrijving en reacties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.