Bonjour à tous,
Est-il possible de trier une structure XML selon plusieurs critères?
Je m'explique :
En entrée j'ai une structure comme celle-ci :
en sortie voici ce que je souhaiterai avoir :
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 <struct> <structure> <type>PP</type> <element2>123</element2> <element3></element3> </structure> <structure> <type>PP</type> <element2>321</element2> <element3>E</element3> </structure> <structure> <type>PP</type> <element2>121</element2> <element3></element3> </structure> <structure> <type>PQ</type> <element2>654</element2> <element3></element3> </structure> <structure> <type>PQ</type> <element2>456</element2> <element3>A</element3> </structure> </struct>
Autrement dit, vérifier s'il y a un élément dans la balise <element3> et si tel est le cas trier les élément selon ce critère (dans un premier temps) afin d'avoir toutes les structures ayant un element3 en tête de structure et classé dans l'ordre de valeur de l'élément3
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 <struct> <structure> <type>PQ</type> <element2>456</element2> <element3>A</element3> </structure> <structure> <element1>PP</element1> <element2>321</element2> <element3>E</element3> </structure> <structure> <type>PP</type> <element2>121</element2> <element3></element3> </structure> <structure> <type>PP</type> <element2>123</element2> <element3></element3> </structure> <structure> <type>PQ</type> <element2>654</element2> <element3></element3> </structure> </struct>
Ensuite trier le reste en fonction de la balise <element2> tout en ayant d'abord tous les élément de type PP et ensuite tous les élément de type PQ.
En gros, au début de la liste il me faut tout les éléments dans l'ordre croissant des <element3>
ET
ensuite les structures ne possédant pas <element3> doivent être classé en fonction de la valeur de <element2> et de leur type. PP avec element2 croissant puis PQ avec element2 de type croissant.
En espérant que quelqu'un puisse m'aider.
D'avance merci à tous
Cordialement
Partager