Сохранение кода XSLT DRY с помощью «if» Tests и «value-of» - PullRequest
3 голосов
/ 26 августа 2009

В XSLT, какой предпочтительный способ сохранить код СУХИМ, когда дело доходит до «если»?

На данный момент я делаю это:

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

Я бы предпочел написать "select / some / long / path" только один раз.

Ответы [ 2 ]

6 голосов
/ 26 августа 2009

Я понимаю вашу точку зрения. Если длина пути составляет 200 символов, код может запутаться.

Вы можете просто добавить его в переменную

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

<xsl:if test="$path">    
   <xsl:value-of select="$path" />
</xsl:if>
0 голосов
/ 26 августа 2009

Где разница между:

<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 выведет пустую строку (т.е. ничего). Так почему тест?

...