2016-12-07 6 views
0

私は、データを取得するために、各ループを持っているため、各ループから値を取得し、それ外で使用するXSLTは - どのように

<xsl:for-each select="data/table0/item"> 
    <xsl:value-of select="UIXsltUtils:BuildLink(tag)" disable-output-escaping="yes"/> 
    <xsl:if test="position() != last()">, </xsl:if> 
</xsl:for-each> 

- >結果:私が使用したい

dap, dinh-vu, iphone 6, mephone8, o-nhiem, bb, sai-pham, xu-phat 

(XSLTコードの他のブロックで)

<div class="clearfix m-t-5" initData="init('{$NeedDataAboveHere}','the-thao')"> 

をdiv要素の属性の値を設定するには、この文字列は、私が望む結果は次のとおりです。

<div class="clearfix m-t-5" initData="init('dap, dinh-vu, iphone 6, mephone8, o-nhiem, bb, sai-pham, xu-phat','the-thao')"> 

答えて

3

あなたは、単にこれを行うことができます。

<xsl:variable name="NeedDataAboveHere"> 
    <xsl:for-each select="data/table0/item"> 
    <xsl:value-of select="UIXsltUtils:BuildLink(tag)" /> 
    <xsl:if test="position() != last()">, </xsl:if> 
    </xsl:for-each> 
</xsl:variable> 

あなたのために、それぞれの結果を格納します。

そしてライン

<div class="clearfix m-t-5" initData="init('{$NeedDataAboveHere}','the-thao')"> 

は、所望の値を取得すべきです。

+3

ただし、disable-output-escapingは削除してください。最初は、エスケープする必要があるため、無効にする理由はありません。第2に、XSLT 1.0プロセッサは、(シリアル化された最終結果ではなく)変数に書き込むときにd-o-eが機能するかどうかについて矛盾します。 –

+1

さて、私は答えを修正しました。確かに私は 'スニペットを質問から貼り付けて、あまり注意を払っていませんでした。 – potame

+0

あなたの答えに感謝します。 – Sonrobby

関連する問題