Précédent   Forum des professionnels en informatique > Autres langages > XML/XSL et SOAP
XML/XSL et SOAP Forum d'entraide sur XML et SOAP. Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2012, 17h08   #1
Membre à l'essai
 
Inscription : mai 2006
Messages : 68
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 68
Points : 22
Points : 22
Par défaut Numérotation sur un regroupement

Bonjour,

J'ai le fichier xml suivant :
Code :
1
2
3
4
5
6
7
8
9
10
 
<APP id="app1" app_type="type2">
    <NOM>test</LIBELLE>
</APP>
<APP id="app2" app_type="type1">
    <NOM>test</LIBELLE>
</APP>
<APP id="app3" app_type="type2">
    <NOM>test</LIBELLE>
</APP>
J'aimerais faire un regroupement par l'attribut app_type, et numéroter les regroupement ainsi que les APP par ordre..

Mais j'obtiens, comme numérotation l'ordre des noeuds... comme tel :
B. Type2
1. App1
3. App3

A. TYpe1
2. App2

Quelqu'un pourrait-il m'aider a régler ce problème?

Voici également mon xsl:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<xsl:template match="LISTE_APP">
	<xsl:for-each select="APP[generate-id(.)=generate-id(key('group-by-type',@app_type))]">
 
	<xsl:sort select="@app_type" />
 
	<h6><xsl:number format="A"/>
		<xsl:text>.  </xsl:text>
		<xsl:value-of select="@app_type"/></h6>
 
 
 
			<xsl:apply-templates select="../APP[@app_type = current()/@app_type]" />
 
	</xsl:for-each>
</xsl:template>

Merci d'avance...
einsteineuzzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 16h28   #2
Membre à l'essai
 
Inscription : mai 2006
Messages : 68
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 68
Points : 22
Points : 22
Je vois que mon sujet n'inspire personne....

J'ai quand même trouvé la solution sur un autre forum.
Pour le personnes qui auraient le même problème, voici le lien :
http://translate.googleusercontent.c...UB8UgWjIxdAjkA

Puis au lien d'utiliser la méthode de Muench pour mon regroupement, je suis passé par les expressions Xpath...

Voila, merci quand même!!!!
einsteineuzzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 01h23   #3
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 101
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 101
Points : 7 027
Points : 7 027
Ça aurait pu marcher ainsi :

- Le xsl:number comme ça :

Code :
<xsl:number value="position()" format="A"/>
- Et le template des APP comme ça :

Code :
1
2
3
4
<xsl:template match="APP">
  <xsl:value-of select="count(preceding-sibling::APP[@app_type = current()/@app_type]) + 1"/>
  <!-- La suite -->
</xsl:template>
Ou alors ne pas passer par un template pour les APP, parce qu'il faut reconnaître que ça complique la numérotation, quoi.

Pas besoin de se passer de Muench, les XPath c'est encore plus galère...
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h47.


 
 
 
 
Partenaires

Hébergement Web