Mijn doel is om geneste xml-menu's te transformeren naar geneste html-menu's. Daarnaast wil ik de menu-items (waaronder menu-items liggen) een css-class 'active' meegeven i.v.m. het bereiken van een uitklapeffekt. De xml-menu's zien er als volgt uit:
Bovenstaande xml tracht ik te transformeren naar:
Om mijn doel te bereiken heb ik twee manieren bedacht:
1. Gebruik maken van recursie. Echter lijkt het mij zeer ingewikkeld om op een dergelijke manier alle nodes door te lopen en te transformeren.
2. Iets te doen met funkties als 'descendant::*'. Echter krijg ik het dan niet voor elkaar om te bepalen of er ingesprongen moet worden voor een dieperliggend menu en of een menu-item de klasse 'active' mee moet krijgen omdat een dieperliggend menu-item aktief is. (Of een menu-item aktief is bepaal ik door de hyperlink van het menu-item te testen tegenover de url van de huidige pagina.
Ik ben benieuwd hoe jullie een dergelijke case opgelost hebben.
XML:
1
2
3
4
5
6
7
8
9
10
11
12
| <menuItem> <hyperLink>http://www.link.com</hyperLink> <name>Menu-item</name> </menuItem> <menuItem> <hyperLink>http://www.link.com</hyperLink> <name>Menu-item</name> <menuItem> <hyperLink>http://www.link.com</hyperLink> <name>Submenu-item</name> </menuItem> </menuItem> |
Bovenstaande xml tracht ik te transformeren naar:
HTML:
1
2
3
4
5
6
7
8
9
| <ul> <li><a href="http://www.link.com">Menu-item</a></li> <li><a href="http://www.link.com" class="active">Menu-item</a></li> <li> <ul> <li><a href="http://www.link.com">Submenu-item</a></li> </ul> </li> </ul> |
Om mijn doel te bereiken heb ik twee manieren bedacht:
1. Gebruik maken van recursie. Echter lijkt het mij zeer ingewikkeld om op een dergelijke manier alle nodes door te lopen en te transformeren.
2. Iets te doen met funkties als 'descendant::*'. Echter krijg ik het dan niet voor elkaar om te bepalen of er ingesprongen moet worden voor een dieperliggend menu en of een menu-item de klasse 'active' mee moet krijgen omdat een dieperliggend menu-item aktief is. (Of een menu-item aktief is bepaal ik door de hyperlink van het menu-item te testen tegenover de url van de huidige pagina.
Ik ben benieuwd hoe jullie een dergelijke case opgelost hebben.
[ Voor 71% gewijzigd door Verwijderd op 06-04-2006 11:33 ]