Ik zit met het volgende probleem.
Ik krijg de structuur van een (navigatie)menu aangeleverd via een xmlstream. Dit moet met behulp van javascript overzichtelijk weergegeven worden. En zo, dat de gebruiker duidelijk de structuur kan zien. Dus wat bij wat hoort e.d.
Nu ben ik aan het scripten gegaan, maar het scriptje wil niet doen, wat ik wél wil
Even wat code..
de xmlstream (template):
Het bovenstaande is een mogelijke structuur van de xmlstream. Deze kan eventueel nog aangepast worden, als er dingen onlogisch in mekaar zouden blijken te zitten.
Nu het JavaScript gedeelte:
het enige wat ie tot nu toe dus hoeft te doen, is wat waardes alerten en alle childs doorlopen.. verder geeft het scriptje nog niets op de pagina weer.. maar dit wat ik hierboven heb staan, werkt voor geen meter..
nog even de code van de LoadXML functie om het xml document in te laden..
Kan iemand me verder helpen, of misschien aan een bron helpen waarmee ik verder kan komen ?
Ik krijg de structuur van een (navigatie)menu aangeleverd via een xmlstream. Dit moet met behulp van javascript overzichtelijk weergegeven worden. En zo, dat de gebruiker duidelijk de structuur kan zien. Dus wat bij wat hoort e.d.
Nu ben ik aan het scripten gegaan, maar het scriptje wil niet doen, wat ik wél wil
Even wat code..
de xmlstream (template):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| <?xml version="1.0"?>
<contents>
<menu>menu 1
<item>item 1</item>
<item>item 2</item>
<item>item 3</item>
<item>item 4
<item>item 4.1</item>
<item>item 4.2
<item>item 4.2.1</item>
<item>item 4.2.2</item>
</item>
<item>item 4.3</item>
</item>
<item>item 5</item>
</menu>
<menu>menu 2
<item>item 1</item>
<item>item 2</item>
<item>item 3
<item>item 3.1</item>
</item>
<item>item 4</item>
</menu>
</contents> |
Het bovenstaande is een mogelijke structuur van de xmlstream. Deze kan eventueel nog aangepast worden, als er dingen onlogisch in mekaar zouden blijken te zitten.
Nu het JavaScript gedeelte:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| // het XMLdocument wordt ingeladen als XMLdom met als objectnaam 'objXmlDoc'
// (de functie LoadXML staat in een ander extern js document)
LoadXML('../XML/menu.xml');
// dit is de functie die na het laden van het body element, aangeroepen zal worden met : " fnMenuItems('menu'); "
function fnMenuItems(argNodeRef)
{
// nu moeten alle menu-tags uit de XMLdata worden gevist..
arrData = eval('objXmlDoc.documentElement.selectNodes(\'' + argNodeRef + '\')');
// voor iedere gevonden menu-tag roepen we de functie fnLoopChilds
// aan met het object van de huidige menu-tag
for (var i = 0; i < arrData.length; i++)
fnLoopChilds(arrData[i]);
}
function fnLoopChilds(arrWhat)
{
for (var i = 0; i < arrWhat.childNodes.length; i++)
{
// wat info over de huidige loop..
alert('Huidige waarde van de child: '+ arrWhat.childNodes.item(i).nodeValue);
alert('i loop: '+ i);
// als het huidige child element ook nog childNodes heeft, dan
// gaan we die ook nog maar even doorlopen.. dus roepen
//we de functie opnieuw aan..
if (arrWhat.childNodes.item(i).childNodes.item(0)) fnLoopChilds(arrWhat.childNodes.item(i));
}
} |
het enige wat ie tot nu toe dus hoeft te doen, is wat waardes alerten en alle childs doorlopen.. verder geeft het scriptje nog niets op de pagina weer.. maar dit wat ik hierboven heb staan, werkt voor geen meter..
nog even de code van de LoadXML functie om het xml document in te laden..
code:
1
2
3
4
5
6
| function LoadXML(sXML)
{
objXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
objXmlDoc.async = false;
objXmlDoc.load(sXML);
} |
Kan iemand me verder helpen, of misschien aan een bron helpen waarmee ik verder kan komen ?