[XSLT] Calculer le nombre de paramètres non null

Calculer le nombre de paramètres non null [XSLT] - XML/XSL - Programmation

Marsh Posté le 07-06-2007 à 15:04:35    

Bonjour,
 
dans mon xsl je déclare un template comme ceci :
 

Code :
  1. <xsl:template name="twoColumnsLine2">
  2.     <xsl:param name="param1"/>
  3.     <xsl:param name="param2"/>
  4.     <xsl:param name="param3"/>
  5. <!-- Calcul du nombre de paramètre non null-->
  6. <xsl:variable name="nb_col" select="0"/>
  7. </xsl:template>


J'aimerais donc calculer le nombre de paramètre qui sont non nulls et l'assigner à la variable "nb_col".  
 
Merci pour votre aide  :jap:


Message édité par tafkap le 07-06-2007 à 16:10:38
Reply

Marsh Posté le 07-06-2007 à 15:04:35   

Reply

Marsh Posté le 07-06-2007 à 18:20:47    

Si tu nous disais plutôt où tu coinces? ;)
Indice: il y a au moins deux façons de le faire, avec uniquement du xpath ou alors avec des tests.

Reply

Marsh Posté le 07-06-2007 à 18:28:37    

Bon en fait je dois afficher un XML sous la forme d'un tableau HTML de deux colonnes... en général car je pourrais très bien avoir 5 données à afficher, ça ferait donc deux lignes de 2 colonnes et une ligne d'une colonne. Et c'est la que ça coince, je ne sais pas comment gérer ce cas dans un XSL.

 

Je ne sais pas si c'est clair, là je suis chez moi mais au besoin de donnerait de plus amples explications demain avec code à l'appui (c'est pour le boulot).

 

Merci ;)


Message édité par tafkap le 07-06-2007 à 18:29:21
Reply

Marsh Posté le 07-06-2007 à 18:46:04    

Bon je vais pas faire le salaud ;) et je vais donner une solution mais va quand même jeter un coup d'oeil à http://w3schools.com/

Code :
  1. <xsl:variable name="nb_col" select="3 - string-length(substring($param1,1,1)) - string-length(substring($param2,1,1)) - string-length(substring($param3,1,1))" />


Reply

Marsh Posté le 07-06-2007 à 23:31:08    

Monsieur le Prince....  :D

 

je débute en XSL et je connais bien http://w3schools.com/ mais il y a tellement de choses à apprendre sur XML/XSL et mon projet avance et pas moi, donc un petit coup de main vite fait c'est pas de refus ;) mais rien ne t'y oblige hein ?  ;)

 

En tout cas merci beaucoup pour ta réponse je regarde ça de plus près demain.

Message cité 1 fois
Message édité par tafkap le 07-06-2007 à 23:32:24
Reply

Marsh Posté le 07-06-2007 à 23:41:16    

tafkap a écrit :

mais rien ne t'y oblige hein ?  ;)


;) Ca ne me dérange pas de consacrer quelques minutes pour donner une réponse. Mais on voit de temps en temps des gens qui ne font pas d'effort et attendent qu'on leur donne la solution toute faite, et ça... :non:. D'où mon premier post...
 
Ici la solution est assez simple: on garde _au plus_ un caractère du string et on prend sa longueur, ce qui donne 0 si le paramètre est vide et 1 sinon.

Reply

Marsh Posté le 07-06-2007 à 23:53:46    

Ok merci bien alors ;)
 
Pas évident le XSL quand on débute...  :pt1cable: c'est la synthax le plus dur je trouve... bon demain je test tout ça, merci  :jap:

Reply

Marsh Posté le 19-06-2007 à 16:09:59    

Je me suis mal exprimé, je recommence, soit l'XML suivant :
 
<employee>
  <grade />  
  <note>2</note>  
  <tauxObj>60.00</tauxObj>  
  <midpointOld>10 EUR</midpointOld>  
  <comparatioOld>20.0000</comparatioOld>  
  <salref>70000.00</salref>  
  <salconv />  
  <midpoint>200 EUR</midpoint>  
  <comparatio>5.5300</comparatio>  
  </employee>
 
Je souhaiterais dans une variable calculer le nombre de noeud d'employee qui ont une valeur. Par exemple <grade> et <salconv> ne doivent pas être pris en compte. Le résultat dans ce cas serait 7.
 
Merci pour votre aide  :jap:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed