Bonjour,
J'ai parcouru les sujets qui pouvaient s'approcher de mon problème sans trouver de solution, raison pour laquelle je me permet de créer un sujet spécifique. S'il existe une meilleur marche à suivre -c'est mon premier message sur le forum- merci de me l'indiquer
Pour rentrer dans le vif du sujet, j'ai une base de donnée qui me permet d'exporter mon data en XML, avec un arbre de cette forme :
Code :
- <XMLRESULT>
- <RESULTSET>
- <ROW>
- <COL>
- <DATA></DATA>
- </COL>
- <COL>
- <DATA></DATA>
- </COL>
- <COL>
- <DATA></DATA>
- </COL>
- <COL>
- <DATA></DATA>
- </COL>
- <COL>
- <DATA></DATA>
- </COL>
- </ROW>
- <ROW>
- ...
- </ROW>
- </RESULTSET>
- </XMLRESULT>
|
Le but de cette extraction est de générer un document XHTML 1.0 Strict pour présenter les données en récapitulant les données redondantes, sous forme de liste. Mon document final adopte cette structure :
Code :
- <h2>Valeur de ROW[1]/COL[1]/DATA</h2>
- <h3>Valeur de ROW[1]/COL[2]/DATA</h3>
- <h4>Valeur de ROW[1]/COL[3]/DATA</h4>
- <ul>
- <li>Valeur de ROW[1]/COL[4]/DATA
- <ul>
- <li>Valeur de ROW[1]/COL[5]/DATA</li>
- <li>Valeur de ROW[2]/COL[5]/DATA</li>
- </ul>
- </li>
- <li>Valeur de ROW[3]/COL[4]/DATA
- <ul>
- <li>Valeur de ROW[3]/COL[5]/DATA</li>
- <li>Valeur de ROW[4]/COL[5]/DATA</li>
- <li>Valeur de ROW[5]/COL[5]/DATA</li>
- </ul>
- </li>
- </ul>
- <h2>Valeur de ROW[6]/COL[1]/DATA</h2>
- <h3>Valeur de ROW[6]/COL[2]/DATA</h3>
- <h4>Valeur de ROW[6]/COL[3]/DATA</h4>
- <ul>
- <li>Valeur de ROW[6]/COL[4]/DATA
- <ul>
- <li>Valeur de ROW[6]/COL[5]/DATA</li>
- <li>Valeur de ROW[9]/COL[5]/DATA</li>
- </ul>
- </li>
- <li>Valeur de ROW[8]/COL[4]/DATA
- <ul>
- <li>Valeur de ROW[8]/COL[5]/DATA</li>
- <li>Valeur de ROW[7]/COL[5]/DATA</li>
- <li>Valeur de ROW[10]/COL[5]/DATA</li>
- </ul>
- </li>
- </ul>
|
Dans cet exemple, la première rubrique (COL[1]/DATA) a une valeur identique pour les cinq premiers enregistrements (ROW). Les différentes valeurs ne sont pas triées (text) lors de l'export, j'imagine qu'il faut commencer par là (xsl:sort) pour pouvoir comparer les valeurs à chaque niveau de l'arbre, non ? Lors de mes tests, ça n'a rien donné, je suppose que je me plante dans le XPATH, mais je ne sais pas où...
Je ne suis pas familier avec le XSL(T), j'ai écumé quelques tuto mais sans trouver quelle méthode utiliser
Auriez-vous des pistes pour m'en sortir ? Merci d'avance
Message édité par citronized le 24-01-2008 à 21:38:07