2016-04-22 40 views
0

我不太确定如何对此进行描述,因为我对XSL还是比较新的。我目前有一个<xsl:for-each>,我正在循环,我需要将每个的一部分追加到测试值。我希望我解释得很好。这里是我的代码:将xsl“变量”附加到xsl:if test

<div class="radio"> 
    <label> 
    <input type="radio" name="withdraw_source" 
      data-target="dpx-container_{./account_number}" 
      value="dpx_{./account_number}"> 
     <xsl:if test="//form_data/withdraw_source = 'dpx'"> 
      <xsl:attribute name="checked">checked 
      </xsl:attribute> 
     </xsl:if> 
    </input> 
    <strong> 
     <xsl:value-of select="./message" disable-output-escaping="yes"/> 
    </strong> 
    </label> 
</div> 

现在,他这样说,我需要做的就是像下面这样:

<div class="radio"> 
    ... 
     <xsl:if test="//form_data/withdraw_source = 'dpx_{./account_number}'"> 
      <xsl:attribute name="checked">checked 
      </xsl:attribute> 
     </xsl:if> 
    ... 
</div> 

任何帮助是极大的赞赏。干杯!

回答

1

似乎concat()是你在找什么。

尝试:

<xsl:if test="form_data/withdraw_source = concat('dpx_', ./account_number)"> 
+0

当我使用,我得到2个错误,“CONCAT需要2个参数”和“属性值模板这里不允许使用”。 – webdevsoup

+1

@webdevsoup:对不起,复制/过去的错误 - 摆脱'{'和'} –

+0

由于某些原因,这仍然无法正常工作。我没有得到格式错误的XML数据错误,并且页面显示为它应该。然而,选中的''仍然没有得到应用。 – webdevsoup