supinfo
Ouverture de  SUPINFO USA à San Francisco en 2008. Des études en informatique en Californie à un tarif abordable ! Inscrivez-vous dès maintenant !
supinfo
Connexion :

Recherche

  
   Tout| Actus| Télécharger| Comparateur de prix| Dossiers| Forums| Jeux| Google

5 messages
ok

transformation d'un XML avec XSL - Recuperer un noeud X parmis d'autres

Bonjour, j'ai un p'tit souci de transformation XSL.

voici mon xml
Code :
.....
<clients>
  <nomClient>cli1</nomClient>
  <nomClient>cli3</nomClient>
  <nomClient>cli2</nomClient>
</clients>
<clients>
  <nomClient>cli3</nomClient>
  <nomClient>cli2</nomClient>
</clients>


Dans mon xsl, je tri par nom client puis jeu veux les regroouper par client.

Code :
<xsl:for-each select="current()[clients/nomClient=\'cli1\']">
  
    <li class="commande">
     <xsl:attribute name="id">c<xsl:value-of select="idArticle"/></xsl:attribute>
    	<span class="client"><xsl:value-of select="clients/nomClient"/></span>
    	<span  class="priorite"><xsl:value-of select="priorite"/></span>
    	<span class="titre"><xsl:value-of select="titre"/></span>
    	<span class="source"><xsl:value-of select="source"/></span>
    	<span class="date"><xsl:value-of select="dateArticle"/></span>
    </li>
  	</xsl:for-each>
<xsl:for-each select="current()[clients/nomClient=\'cli2\']">
  
    <li class="commande">
     <xsl:attribute name="id">c<xsl:value-of select="idArticle"/></xsl:attribute>
    	<span class="client"><xsl:value-of select="clients/nomClient"/></span>
    	<span  class="priorite"><xsl:value-of select="priorite"/></span>
    	<span class="titre"><xsl:value-of select="titre"/></span>
    	<span class="source"><xsl:value-of select="source"/></span>
    	<span class="date"><xsl:value-of select="dateArticle"/></span>
    </li>
  	</xsl:for-each>
....


le problème est que par exemple, si j'ai plusieur nomclient, je ne prend en compte que le 1er.... du coup, dans mon exemple le cli2 n'est jamais affiché puisqu'il ne se trouve jamais en 1er position...

j'ai essayé de mettre des <xsl:for-each select="current()[clients/nomClient[1 ou 2 ou last etc...]=\'cli2\']"> sans succes

qq'un a une idée? merci
 
 
Peux tu mettre un titre plus explicite s'il te plaît?
 
 
Bonjour.
Pourquoi est-ce que tu mets deux noeuds clients qui contiennent la même chose ? (c'est une vraie question, y a pas de piège, juste pour comprendre). Il n'y a pas d'attribut en plus, tu n'as pas simplifié la situation ?
 
 
Mandarounet a écrit:
Bonjour.
Pourquoi est-ce que tu mets deux noeuds clients qui contiennent la même chose ? (c'est une vraie question, y a pas de piège, juste pour comprendre). Il n'y a pas d'attribut en plus, tu n'as pas simplifié la situation ?

parce que c'est 2 identité diferente
en gros ca plus
Code :
<article>
....
...
<client>
</client>
</article>
<article>
....
<client>
</client>
</article>
...
 
 
D'accord.
Alors, soit je n'ai pas compris ce que tu cherches à faire, soit tu n'utilises pas xsl:for-each comme il faut.

Essaie de mettre
Code :
<xsl:for-each select="current()/clients/nomClient">
à la place de :
Code :
<xsl:for-each select="current()[clients/nomClient=\'cli1\']">
 
 
 
5 messages
ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires:


 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com