EMSIEN
Messages postés194Date d'inscriptionlundi 26 juillet 2004StatutMembreDernière intervention11 juin 2009
-
23 mai 2008 à 18:09
EMSIEN
Messages postés194Date d'inscriptionlundi 26 juillet 2004StatutMembreDernière intervention11 juin 2009
-
28 mai 2008 à 14:03
Bonjour tout le monde,
Tout d'abrd, je n'ai pas trouvé une rubrique spécial XML/XSLT..., donc puisque je suis sous JSP, j'ai posé la question ici.
J'ai un fichier Xml qui ressemble à ça :
<?xml version="1.0" encoding="ISO-8859-1"?>
<Root name="nomRoot" >
<Operation Att1="A" Att2="B" Att3="1" />
<Operation Att1="C" Att2="D" Att3="2" />
....
<Operation Att1="A" Att2="B" Att3="3" />
<Operation Att1="A" Att2="B" Att3="4" />
</Root>
Puis voici une partie de mon fichier XSLT :
...
<xsl:template match="Root">
<xsl:for-each select="Delete">
<center>
----
Après la transformation je récupère pour chaque element Operation un tableau HTML avec deux lignes (la première contenant Att1 et Att2, et la deuxième seulement Att3): comme ça :
______________________________
| A | B |
|______________________________|
| 1 |
|______________________________|
______________________________
| C | D |
|______________________________|
| 2 |
|______________________________|
______________________________
| A | B |
|______________________________|
| 3 |
|______________________________|
______________________________
| A | B |
|______________________________|
| 4 |
|______________________________|
mais ce que je voudrai faire, c'est que si j'ai dans mon fichier XML plusieurs lignes qui ont les même valeurs dans Att1 & Att2 qu'il me mettent tous les Att3 dans un seul tableau, au lieu de chaque tableau à part, une sorte de Group By, comme ça :
______________________________
| A | B |
|______________________________|
| 1 |
| 3 |
| 4 |
|______________________________|
______________________________
| C | D |
|______________________________|
| 2 |
|______________________________|
Je voudrais savoir qu'est ce que je dois changer dans mon fichier XSLT pour atteindre ce résultat ?
dj200812002
Messages postés15Date d'inscriptionsamedi 31 juillet 2004StatutMembreDernière intervention 5 octobre 2009 27 mai 2008 à 16:35
______________________________
| A | B |
|______________________________|
| 1 |
| 3 |
| 4 |
|______________________________|
______________________________
| C | D |
|______________________________|
| 2 |
|______________________________|
pour faite ce résultat.
1- tu doit avoir deux templates. Root + une autre qui vas recevoir en paramétre le Att1 du paramétre Position().
2- la deuxiéme template elle vas chercher s'il y a un count > 0 du Position() jusqu'a la fin du paramétre Reçu.
3- dans la template Root tu a bien sur une For-each qui appéle la deuxieme template et qui test sur le count envoyé par la deuxiéme.
je sais pas exactement est ce que je suis claire dans mes explication. sinon je vais t'écrire un bout de code.