Bonjour, j'aimerais lire un XML de la forme
<?xml version="1.0" encoding="utf-8" ?> <Niv1 label="Sommaire" link="" target=""> <Niv2 label="sous-menu1" link="" target=""> <Niv3 label="sous-sous-menu1" link="bonjour.htm" target="#"> <Niv4 label="sous-sous-sous-menu5"></Niv4> <Niv4 label="sous-sous-sous-menu6"> <Niv5 label="sous-sous-sous-sous-menu1d"></Niv5> </Niv4> <Niv4 label="sous-sous-sous-menu7"></Niv4> </Niv3> </Niv2> <Niv2 label="Sous-menu2" link="" target=""> <Niv3 label="sous-sous-menu1" link="" ></Niv3> </Niv2> <Niv2 label="sous-menu3" link="" > <Niv3 label="sous-sous-menu1" link="" ></Niv3> <Niv3 label="sous-sous-menu3" link="" ></Niv3> <Niv3 label="sous-sous-menu4"></Niv3> </Niv2> <Niv2 label="sous-menu4" link="" target=""></Niv2> </Niv1>
|
Le problème c'est que j'arrive sur ce bout de code
Dim doc As New XmlDocument doc.Load(Dossier & "\xml\" & XmlFile) Dim mNodeRoot As XmlNode mNodeRoot = doc.DocumentElement Remplir &= XmlAddItem(mNodeRoot, "root", "menu") Dim mNodeChild1 As XmlNode mNodeChild1 = mNodeRoot.FirstChild Dim i1 As Integer = 0 Do Until mNodeChild1 Is Nothing i1 += 1 Remplir &= XmlAddItem(mNodeChild1, i1, "menu2") Dim mNodeChild2 As XmlNode mNodeChild2 = mNodeChild1.FirstChild Dim i2 As Integer = 0 Do Until mNodeChild2 Is Nothing i2 += 1 Remplir &= XmlAddItem(mNodeChild2, i2, i1) Dim mNodeChild3 As XmlNode mNodeChild3 = mNodeChild2.FirstChild Dim i3 As Integer = 0 Do Until mNodeChild3 Is Nothing i3 += 1 Remplir &= XmlAddItem(mNodeChild3, i3, i2) Dim mNodeChild4 As XmlNode mNodeChild4 = mNodeChild3.FirstChild Dim i4 As Integer = 0 Do Until mNodeChild4 Is Nothing i4 += 1 Remplir &= XmlAddItem(mNodeChild4, i4, i3) '[......] On peut repeter un meme bloc autant qu'il y a d'enfant mNodeChild4 = mNodeChild4.NextSibling Loop mNodeChild3 = mNodeChild3.NextSibling Loop mNodeChild2 = mNodeChild2.NextSibling Loop mNodeChild1 = mNodeChild1.NextSibling Loop
|
Je ne connais pas d'avance le nombre d'enfant, ce qui fait que si il y a un grand nombre d'enfant la longueur du code pourrait etre enorme, comment resoudre ce petit pb, j'ai deja pensé à ecrire un fichier.vb que l'on executera et qu'on generera en fonction du nombre d'enfant mais cela ferais faire beaucoup de travail au serveur ...
merci