Условные элементы гнезда в XSLT
2 Curt [2014-07-01 17:51:00]
У меня есть шаблон XSLT, который условно нуждается в вложенности в элемент anchor
.
Например:
<xsl:choose>
<xsl:when test="$foo = 1">
<a href="/bar">
<xsl:call-template name="Baz">
<xsl:with-param name="ParamA" select="$A" />
<xsl:with-param name="ParamB" select="$B" />
<xsl:with-param name="ParamC" select="$C" />
<xsl:with-param name="ParamD" select="$D" />
<xsl:with-param name="ParamE" select="$E" />
<xsl:with-param name="ParamF" select="$F" />
</xsl:call-template>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="Baz">
<xsl:with-param name="ParamA" select="$A" />
<xsl:with-param name="ParamB" select="$B" />
<xsl:with-param name="ParamC" select="$C" />
<xsl:with-param name="ParamD" select="$D" />
<xsl:with-param name="ParamE" select="$E" />
<xsl:with-param name="ParamF" select="$F" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
Как вы можете видеть, здесь много дублирующего кода вокруг call-template
и переданных параметров.
Есть ли более аккуратный, DRYer, способ условно вложенных элементов?
html xslt dry
1 ответ
2 michael.hor257k [2014-07-01 18:01:00]
Вы можете вызвать шаблон в переменной и поместить результат переменной внутри выбора.