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


92
<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属性にテキストを渡す必要があります

回答:


148

ここでは、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>

2
@TimC:いいですが、concat()ここでは機能は必要ありません。
Dimitre Novatchev、2012年

次のタグ<a title="" href="https://stackoverflow.com/page.cfm?id=425">Anders, John</a>があります。ID番号のみを取得する非表示フィールドをXSLTに作成したいと思います。どうすればそれを達成できますか?
SearchForKnowledge 2015年

27

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')}" />

2
Dimitreで述べたように、あなたはここに連結する必要はありません:<img src="{//your/xpath}vmLogo.gif" />
Svish


5

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

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

1

最も簡単な方法は

  <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>

0

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

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

1
これにはいくつかの問題があります。XSLT命令の間では、空白のみテキストノードが無視されます。しかし、空白ではないテキストノード(' Text')があるため、空白(新しい行でも)が出力されます。
アレハンドロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.