回到基础,我想详细了解下面代码对后者的重要性..反之亦然..
代码示例1:
<xsl:template match="Gender">
<xsl:copy>
<xsl:if test=".='M'">
<xsl:text>Male</xsl:text>
</xsl:if>
<xsl:if test=".='F'">
</xsl:text>Female</xsl:text>
</xsl:if>
</xsl:copy>
</xsl:template>
代码示例2:
<xsl:template match="Gender[.='M']">
<xsl:copy>
<xsl:text>Male</xsl:text>
</xsl:copy>
</xsl:template>
<xsl:template match="Gender[.='F']">
<xsl:copy>
<xsl:text>Female</xsl:text>
</xsl:copy>
</xsl:template>
我可以在code1中使用<xsl:choose/>
,这不是重点。我想讨论如何明智地使用不同的模板与匹配条件而不是使用if和else条件。考虑到性能,可读性和维护以及更多因素?
答案 0 :(得分:2)
我肯定更喜欢Code2 :
更简单 - 显式条件指令消失了。
缩短 - 因为上述原因。
更容易理解 - 因为上面的1.和2.
更易于维护:如果在处理“F”时需要更改某些内容,则无法解决“M”的处理问题。
< / LI>更容易扩展。如果将Code2的样式表导入到另一个样式表中,则可以仅覆盖两个模板中的一个 - 使用Code1,需要覆盖整个单片模板,并且可能只是复制一些代码而不进行任何更改。
记住KISS原则:保持简单,愚蠢......:)