110 votes

Comment concaténer une chaîne en xsl: value-of select = "...?

 <a>
    <xsl:attribute name="href"> 
     <xsl:value-of select="/*/properties/property[@name='report']/@value" />
    </xsl:attribute>
</a>    
 

Est-il possible d'annuler une autre chaîne à

 <xsl:value-of select="/*/properties/property[@name='report']/@value"  />
 

J'ai besoin de passer du texte à l'attribut href en plus de la valeur de la propriété report

170voto

Tim C Points 25946

Vous pouvez utiliser ici la fonction xpath assez judicieusement appelée concat

 <a>
   <xsl:attribute name="href">
      <xsl:value-of select="concat('myText:', /*/properties/property[@name='report']/@value)" />
   </xsl:attribute>
</a>  
 

Bien sûr, il n'est pas nécessaire que ce soit du texte ici, il peut s'agir d'une autre expression xpath pour sélectionner un élément ou un attribut. Et vous pouvez avoir un nombre quelconque d'arguments dans l'expression concat.

Notez que vous pouvez utiliser ici des modèles de valeur d'attribut (représentés par des accolades) pour simplifier votre expression.

 <a href="{concat('myText:', /*/properties/property[@name='report']/@value)}"></a>
 

32voto

Nnoel Points 578

Trois réponses:

Simple:

 <img>
    <xsl:attribute name="src">
        <xsl:value-of select="//your/xquery/path"/>
        <xsl:value-of select="'vmLogo.gif'"/>
    </xsl:attribute>
</img>
 

Utiliser 'concat':

 <img>
    <xsl:attribute name="src">
        <xsl:value-of select="concat(//your/xquery/path,'vmLogo.gif')"/>                    
    </xsl:attribute>
</img>
 

Raccourci d'attribut suggéré par @TimC

 <img src="{concat(//your/xquery/path,'vmLogo.gif')}" />
 

17voto

Dimitre Novatchev Points 147842

Utiliser :

 <a href="wantedText{/*/properties/property[@name='report']/@value)}"></a>
 

5voto

mclckr Points 48

Le moyen le plus simple de concaténer une chaîne de texte statique avec une valeur sélectionnée consiste à utiliser élément.

 <a>
  <xsl:attribute name="href"> 
    <xsl:value-of select="/*/properties/property[@name='report']/@value" />
    <xsl:text>staticIconExample.png</xsl:text>
  </xsl:attribute>
</a>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X