ik heb voor mijn stage iets in XML gemaakt, en daar heb ik dan een klein cursusje bijgemaakt over hoe XML werkt, dus het is een XML cursus voor javascript en DOM. omdat dit de enige delen van XML zijn die ik gebruik
Het is bedoeld voor mensen zonder XML en javascript kennis, ze hebben wel veel programmeer ervaring met onder andere C en VB
Heeft nog iemand op- of aanmerkingen?
-------------------------------------------------------
XML Cursus
Inleiding:
Als u dit hoofdstuk heeft gelezen hebt u genoeg kennis over XML om de XML van het monitor programma te lezen en te snappen, ook zal u een nieuwe XML aan kunnen maken en uit kunnen lezen.
Wat is XML:
XML is een metataal en staat voor eXtended Markup Language. Dit houdt in dat XML een taal is om data te beschrijven, het heeft dus niets met layout te maken. XML is platform en applicatie onafhankelijk, dit betekent dat je de XML voor alle programmas kunt gebruiken. XML ziet er ongeveer hetzelfde uit als HTML alleen is HTML iets heel anders als XML, want HTML gaat alleen over de layout.
Ik zal u eerst een voorbeeld van een XML bestand geven en ik zal het daarna uitleggen. Het is een voorbeeld waar een hele simpele fiets word beschreven die als enige onderdelen een merk, wiel en een frame heeft.
XML bestand 1:
Als we nu dit XML bestand regel voor regel gaan bekijken komen we als eerste bij deze regel:
<?xml version="1.0"?>
Dit is altijd de eerste regel van een XML bestand, aan deze regel herkend de Internet Browser dat dit bestand een XML bestand is.
Als we nu naar de tweede regel kijken zien we dit:
<fiets>
Dit is het eerste object van ons XML bestand. Een XML bestand heeft altijd 1 object waar de rest van de objecten in staan. Als je op regel 19 kijkt zie je </fiets> staan, dit is de sluit TAG van het object fiets. Bij XML moeten alle objecten een openings- en een sluit TAG hebben.
Als we nu nog een paar regels verder lezen zien we dat de fiets een merk, een wiel en een frame heeft. Een wiel heeft weer een aantal spaken en een band. Een frame heeft alleen een materiaalsoort. Zo ziet u dat elk object ook weer objecten kan bezitten. Een object kan ook meer van dezelfde objecten bezitten.
DOM:
DOM staat voor Document Object Model. DOM is een manier om XML te ontleden via een boomstructuur. Alle objecten uit het XML bestand worden knopen in de boom. Hieronder staat een figuur als uitleg bij het XML bestand uit het vorige voorbeeld.
[edit] hier stond een schema
Figuur 3, Het DOM model van het XML bestand fiets
Zoals je ziet is fiets de wortel van de boom. Vanuit hier kun je door de boom lopen naar uiteindelijk alle attributen.
DOM en Javascript:
Met Javascript kun je via DOM de XML doorzoeken naar bepaalde objecten. Als eerste moet je natuurlijk de XML laden. Dit doe je met de volgende functie, maar voordat je deze functie aanroept moet je eerst een variabele xml maken waarin de XML file word geladen:
Maken variabele:
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async="false"
Nu is er een variabele aangemaakt van het type ActiveX waarin je een xml file kan laden.
Functie:
Als deze functie klaar is zit er in de variabele xml de file die op het URL van fFile stond. Als er iets fout gaat tijdens het laden dan geeft de functie een foutmelding.
Als alles goed is gegaan kunnen we nu door de file heenzoeken als een boomstructuur. We hebben hier eigenlijk 2 objecten nodig waarmee we deze boom mee kunnen doorlopen: dit zijn de node (knoop) en nodelist (lijst met alle kinderen van de knoop). We beginnen met de wortel van de boom op te zoeken, dit doen we met dit statement.
var xnDocRoot = xml.documentElement;
In de variabele xnDocRoot zit nu de wortelknoop van de boom. We kunnen nu een nodelist maken vanuit deze knoop:
var xnlChildrenOfRoot = xnDocRoot.childNodes;
in de variabele xnlChildrenOfRoot zit nu een lijst met knopen die de kinderen zijn van de wortel van de boom. Je kunt nu dus weer een variabele aanmaken van het type node en daar dan een bepaald kind van de nodelist.
Een variabele de waarde van een bepaald kind uit de nodelist geven doen we met het volgende statement:
var xnNode1 = xnlChildrenOfRoot.item(i)
i is hier dan het nummer van het kind dat je uit de nodelist wilt halen. Als je dit hebt gedaan kun je de waarde van deze node printen of weer een nodelist aanmaken als hij nog meer kinderen heeft. Ik zal hieronder uitleggen hoe je de waardes uit de node haalt bij het voorbeeld van de fiets.
var xnDocRoot = xml.documentElement;
var xnNode1 = xnlChildrenOfRoot.item(0)
var sText = xnNode1.text;
var sNodeName = xnNode.nodeName;
In de variabele sText zit nu de string batavus en in de variabele sNodeName zit de string merk.
Op deze manier kun je dus de hele boomstructuur nalopen en op het scherm afdrukken. Er zijn nog veel meer manieren om XML op het scherm af te drukken, maar voor de monitor is de manier via DOM omdat je dan via een boomstructuur alles na kan lopen.
Het is bedoeld voor mensen zonder XML en javascript kennis, ze hebben wel veel programmeer ervaring met onder andere C en VB
Heeft nog iemand op- of aanmerkingen?
-------------------------------------------------------
XML Cursus
Inleiding:
Als u dit hoofdstuk heeft gelezen hebt u genoeg kennis over XML om de XML van het monitor programma te lezen en te snappen, ook zal u een nieuwe XML aan kunnen maken en uit kunnen lezen.
Wat is XML:
XML is een metataal en staat voor eXtended Markup Language. Dit houdt in dat XML een taal is om data te beschrijven, het heeft dus niets met layout te maken. XML is platform en applicatie onafhankelijk, dit betekent dat je de XML voor alle programmas kunt gebruiken. XML ziet er ongeveer hetzelfde uit als HTML alleen is HTML iets heel anders als XML, want HTML gaat alleen over de layout.
Ik zal u eerst een voorbeeld van een XML bestand geven en ik zal het daarna uitleggen. Het is een voorbeeld waar een hele simpele fiets word beschreven die als enige onderdelen een merk, wiel en een frame heeft.
XML bestand 1:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <?xml version="1.0"?>
<fiets>
<merk>
batavus
</merk>
<wiel>
<spaakaantal>
25
</spaakaantal>
<band>
grof profiel
</band>
</wiel>
<frame>
<materiaal>
alluminium
</materiaal>
</frame>
</fiets> |
Als we nu dit XML bestand regel voor regel gaan bekijken komen we als eerste bij deze regel:
<?xml version="1.0"?>
Dit is altijd de eerste regel van een XML bestand, aan deze regel herkend de Internet Browser dat dit bestand een XML bestand is.
Als we nu naar de tweede regel kijken zien we dit:
<fiets>
Dit is het eerste object van ons XML bestand. Een XML bestand heeft altijd 1 object waar de rest van de objecten in staan. Als je op regel 19 kijkt zie je </fiets> staan, dit is de sluit TAG van het object fiets. Bij XML moeten alle objecten een openings- en een sluit TAG hebben.
Als we nu nog een paar regels verder lezen zien we dat de fiets een merk, een wiel en een frame heeft. Een wiel heeft weer een aantal spaken en een band. Een frame heeft alleen een materiaalsoort. Zo ziet u dat elk object ook weer objecten kan bezitten. Een object kan ook meer van dezelfde objecten bezitten.
DOM:
DOM staat voor Document Object Model. DOM is een manier om XML te ontleden via een boomstructuur. Alle objecten uit het XML bestand worden knopen in de boom. Hieronder staat een figuur als uitleg bij het XML bestand uit het vorige voorbeeld.
[edit] hier stond een schema
Figuur 3, Het DOM model van het XML bestand fiets
Zoals je ziet is fiets de wortel van de boom. Vanuit hier kun je door de boom lopen naar uiteindelijk alle attributen.
DOM en Javascript:
Met Javascript kun je via DOM de XML doorzoeken naar bepaalde objecten. Als eerste moet je natuurlijk de XML laden. Dit doe je met de volgende functie, maar voordat je deze functie aanroept moet je eerst een variabele xml maken waarin de XML file word geladen:
Maken variabele:
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async="false"
Nu is er een variabele aangemaakt van het type ActiveX waarin je een xml file kan laden.
Functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| function loadXML(xml,fFile)
/*
pre: -
post: The variable "fFile" is loaded in "xml" or an error shows on the screen
*/
{
try
{
// the actual loading
xml.load(fFile);
}
catch(error)
{
// showing a popup message because the load of the XML was not good.
alert(fFile +" is not found or it contains errors");
};
}// end loadXML |
Als deze functie klaar is zit er in de variabele xml de file die op het URL van fFile stond. Als er iets fout gaat tijdens het laden dan geeft de functie een foutmelding.
Als alles goed is gegaan kunnen we nu door de file heenzoeken als een boomstructuur. We hebben hier eigenlijk 2 objecten nodig waarmee we deze boom mee kunnen doorlopen: dit zijn de node (knoop) en nodelist (lijst met alle kinderen van de knoop). We beginnen met de wortel van de boom op te zoeken, dit doen we met dit statement.
var xnDocRoot = xml.documentElement;
In de variabele xnDocRoot zit nu de wortelknoop van de boom. We kunnen nu een nodelist maken vanuit deze knoop:
var xnlChildrenOfRoot = xnDocRoot.childNodes;
in de variabele xnlChildrenOfRoot zit nu een lijst met knopen die de kinderen zijn van de wortel van de boom. Je kunt nu dus weer een variabele aanmaken van het type node en daar dan een bepaald kind van de nodelist.
Een variabele de waarde van een bepaald kind uit de nodelist geven doen we met het volgende statement:
var xnNode1 = xnlChildrenOfRoot.item(i)
i is hier dan het nummer van het kind dat je uit de nodelist wilt halen. Als je dit hebt gedaan kun je de waarde van deze node printen of weer een nodelist aanmaken als hij nog meer kinderen heeft. Ik zal hieronder uitleggen hoe je de waardes uit de node haalt bij het voorbeeld van de fiets.
var xnDocRoot = xml.documentElement;
var xnNode1 = xnlChildrenOfRoot.item(0)
var sText = xnNode1.text;
var sNodeName = xnNode.nodeName;
In de variabele sText zit nu de string batavus en in de variabele sNodeName zit de string merk.
Op deze manier kun je dus de hele boomstructuur nalopen en op het scherm afdrukken. Er zijn nog veel meer manieren om XML op het scherm af te drukken, maar voor de monitor is de manier via DOM omdat je dan via een boomstructuur alles na kan lopen.