(Note: J'ai posté une variation sur my earlier question comme suggéré)XSLT pour dénormaliser/pivoter/aplatir le fichier xml? Partie 2
Compte tenu d'un fichier xml d'entrée avec la structure suivante:
<widgets>
<widget shape="square" material="wood" color="red" />
<widget shape="square" material="metal" color="blue" />
<widget shape="square" material="plastic" color="green" />
<widget shape="square" material="kevlar" color="red" />
<widget shape="round" material="metal" color="orange" />
<widget shape="round" material="wood" color="green" />
<widget shape="round" material="kevlar" color="blue" />
<widget shape="diamond" material="plastic" color="blue" />
<widget shape="diamond" material="wood" color="brown" />
<widget shape="diamond" material="metal" color="red" />
</widgets>
Et les informations suivantes:
- Chaque widget a une forme, un matériau et une couleur
- Chaque combinaison de forme, de matériau et de couleur est unique
- Toutes les combinaisons de formes, de matériaux et de couleurs n'existent pas. Il n'y a pas de widget rond en plastique.
- Les formes, les matériaux et les couleurs peuvent être illimités
- La sortie souhaitée est un tableau où chaque ligne représente une forme et chaque colonne représente un matériau.
Comment puis-je générer la structure suivante à l'aide de XSLT?
<table>
<tr id="diamond">
<td class="kevlar"></td>
<td class="metal red"></td>
<td class="plastic blue"></td>
<td class="wood brown"></td>
</tr>
<tr id="round">
<td class="kevlar blue"></td>
<td class="metal orange"></td>
<td class="plastic"></td>
<td class="wood green"></td>
</tr>
<tr id="square">
<td class="kevlar green"></td>
<td class="metal blue"></td>
<td class="plastic green"></td>
<td class="wood red"></td>
</tr>
</table>
Il manque encore des informations pertinentes. Dans le résultat recherché quelle est la valeur qui a une matière mais pas de couleur? Devons-nous deviner cela? –
Il n'y a pas de valeur à savoir il n'y a pas de widget en forme de diamant kevlar et pas de widget en plastique de forme ronde. J'ai seulement ajouté ces cellules pour la complétude mais leur contenu sera vide. – eft