Bonjour tout le monde,

Je me penche actuellement sur une requete XPATH assez complexe (enfin, pour mon niveau) :

J'ai un xml de la forme suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<info....>
<entete....>
<detail....>
<detail....>
<entete....>
<detail....>
<entete....>
<entete....>
On le qualifiera de "plat" je l'avoue mais ca n'est pas de mon ressort =)
J'ai modélisé un XMLSchema permettant de valider ce XML via un xsd:group défini de la sorte (<entete>,<detail>*).

Il me faut maintenant transformer cette structure de la maniere suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<info2...>
<entete2...>
<detail2...>
<detail2...>
<entete2...>
<detail2...>
<pied2...>
<entete2...>
Ici on epure les noeuds <entete> et <detail> du précédent XML mais on effectue également un tri des groupes (entete, detail*) selon plusieurs sous-noeud contenus dans <entete>. En plus, à chaque changement de la valeur de tri, on insere un noeud <pied> inspiré d'informations situées dans des sous noeuds de la derniere entete <entete>

Je parviens sans problème à trier les entetes, les grouper selon les facteurs de tri et à insérer le pied en fin de groupe, toutefois, je ne parviens pas, au sein de chaque noeud entete traité, à récupérer les noeud détail qui lui sont rattachés. A noter pour une réelle difficulté du problème, qu'il n'existe aucun lien fonctionnel reliant les noeuds <entete> de <detail>. Seul l'ordre défini l'appartenance d'un noeud <detail> a un noeud <entete>.

Je reste à disposition pour toutes questions ou précisions si c'est mal expliqué et je suis tout ouïe à vos propositions.

Merci d'avance pour votre aide !