Bonjour,
J'ai un fichier XML qui ressemble à ceci:
Il s'agit d'un fichier de gestion de profils pour une application. Maintenant, quand je veux charger un profil dans l'application, je cherche d'abord le noeud qui contient le nom de mon profil recherché:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?xml version="1.0" encoding="UTF-8"?> <alleProfile> <profil name="Tim"> <output> <druck> <druckanzahl>123</druckanzahl> <papierart>A4 Ungelocht</papierart> <rucksendung>Zum Kunde</rucksendung> <kuvertierung>ja</kuvertierung> </druck> </output> </profil> <profil name="Test"> <output> <druck> <druckanzahl>456</druckanzahl> <papierart>A4 Gelocht</papierart> <rucksendung>Zum Kunde</rucksendung> <kuvertierung>nein</kuvertierung> </druck> </output> </profil> <profil name="Neutest"> <output> <archiv> <archivdokumentklasse>Rechnung</archivdokumentklasse> </archiv> </output> </profil> </alleProfile>
Et cela fonctionne plutot bien; mais voici mon probleme: une fois le profil trouvé, j'aimerais lire tout le contenu de la balise <output> récursivement, cad récupérer tous les sous-noeuds ainsi que leur contenu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 private void loadProfiles(string aFileName) { try { // Profildatei Laden XmlTextReader reader = new XmlTextReader(aFileName); while (reader.Read()) { // ProfilNamen auslesen und der Liste hinzufügen if(reader.NodeType == XmlNodeType.Element) { if(reader.Name.Equals("profil")) { // Trouvé !! } } } reader.Close(); } catch (System.IO.FileNotFoundException) { // Rien } }
Quand je fais "MessageBox.Show("Inner XML = " + reader.ReadInnerXml());" à l'endroit du "//trouvé" dans le code d'en haut, j'obtiens tout le contenu de mon Output. Mais comment l'explorer à son tour ?
J'ai deja tenté avec un foreach, avec un nouveau reader et avec un getChildByID ... mais je n'y parviens pas...
Quelqu'un a une idée ?
Il me faut juste un moyen pour parcourir un noeud (profil) et de récupérer les valeurs des balises...
merci !
Partager