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
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>
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
 
<parent1>
  <enfant1>
  <enfant2>
  <enfant3>
</parent1>
 
<parent3>
  <enfant4>
  <enfant7>
  <enfant8>
</parent3>
 
<parent2>
  <enfant4>
  <enfant5>
  <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
 
  <enfant1>
  <enfant2>
  <enfant3>
  <enfant4>
  <enfant4>
  <enfant5>
  <enfant6>
  <enfant7>
  <enfant8>
Pourquoi : parce que quand je créé mon itérateur qui va parcourir les noeuds à trier, je fais
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 ?