2016-12-07 9 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 

Я хочу использовать эта строка, чтобы установить значение атрибута в DIV (в другом блоке кода) XSLT

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

результат я хочу это:

<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

Но отбросьте выключение вывода. Для начала здесь нет ничего, что могло бы ускользнуть, и поэтому нет причин его отключать. Во-вторых, процессоры XSLT 1.0 не согласуются с тем, работает ли d-o-e, когда вы пишете переменную (а не сериализованный конечный результат). –

+1

Хорошо, я исправил ответ. Действительно, я вставил фрагмент ' 'из вопроса и не обращал на это особого внимания. – potame

+0

благодарим за ответ. – Sonrobby

 Смежные вопросы

  • Нет связанных вопросов^_^