使用'if'测试和'value-of'选择保持XSLT代码DRY

时间:2009-08-26 09:37:10

标签: xslt dry

在XSLT中,当涉及到'if'时,保持代码DRY的首选方法是什么?

目前我正在这样做:

<xsl:if test="select/some/long/path">
    <element>
        <xsl:value-of select="select/some/long/path" />
    </element>
</xsl:if>

我宁愿只写一次“select / some / long / path”。

2 个答案:

答案 0 :(得分:6)

我明白你的观点。当路径长度为200个字符时,代码就会变得混乱。

您可以将其添加到变量

<xsl:variable name="path" select="select/some/long/path"/>

<xsl:if test="$path">    
   <xsl:value-of select="$path" />
</xsl:if>

答案 1 :(得分:0)

区别在于:

<xsl:if test="select/some/long/path">
  <xsl:value-of select="select/some/long/path" />
</xsl:if>

<xsl:value-of select="select/some/long/path" />

?如果它不存在,value-of将输出一个空字符串(即:nothing)。那为什么要测试?