Salut
J'ai un fichier XML avec plusieurs niveaux
Je voudrais trier tous les noeuds enfants de plusieurs noeuds parents, mais conserver l'ordre des parents
Exemple :
Avant
Après :
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 <parent1> <enfant3> <enfant1> <enfant2> </parent> <parent> <enfant8> <enfant4> <enfant7> </parent> <parent2> <enfant5> <enfant4> <enfant6> </parent2>
J'ai utilisé la méthode XPathExpression.AddSort (j'ai trouvé un exemple assez complet ici http://samples.gotdotnet.com/quickst...xpression.aspx) mais le problème c'est qu'il me trie les enfants comme s'ils appartenaient tous au même parent :
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 <parent1> <enfant1> <enfant2> <enfant3> </parent1> <parent3> <enfant4> <enfant7> <enfant8> </parent3> <parent2> <enfant4> <enfant5> <enfant6> </parent2>
Pourquoi : parce que quand je créé mon itérateur qui va parcourir les noeuds à trier, je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <enfant1> <enfant2> <enfant3> <enfant4> <enfant4> <enfant5> <enfant6> <enfant7> <enfant8>
myNodeIterator = myXPathNavigator.Select("parent/enfant"); et là il me choppe tous les enfants sans distinction de parent.
Comment faire pour lui dire de trier parent par parent et non pas tout en un seul bloc ?
Partager