web-dev-qa-db-ja.com

文字列をxsl:value-of select = "...に連結する方法は?

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

別の文字列をcancatする方法はありますか

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

レポートプロパティ値に加えて、href属性にテキストを渡す必要があります

85
Hanumanth

ここではconcatと呼ばれるかなりわかりやすい名前のxpath関数を使用できます。

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

もちろん、ここではテキストである必要はなく、要素または属性を選択する別のxpath式を使用できます。また、連結式には任意の数の引数を含めることができます。

ここで、式を簡素化するために、属性値テンプレート(中括弧で表される)をここで使用できます。

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

3つの答え:

シンプル:

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

「concat」の使用:

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

@TimCによって提案された属性のショートカット

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

使用

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

選択した値に静的テキスト文字列を連結する最も簡単な方法は、要素を使用することです。

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

最も簡単な方法は

  <TD>
    <xsl:value-of select="concat(//author/first-name,' ',//author/last-name)"/>
  </TD>

xML構造が

<title>The Confidence Man</title>
<author>
  <first-name>Herman</first-name>
  <last-name>Melville</last-name>
</author>
<price>11.99</price>
1
Marshall

最も読みやすいソリューションではありませんが、value-ofの結果とプレーンテキストを混在させることができます。

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