if / else条件和模板匹配条件之间的差异

时间:2012-04-07 21:47:11

标签: performance xslt reliability

回到基础,我想详细了解下面代码对后者的重要性..反之亦然..

代码示例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条件。考虑到性能,可读性和维护以及更多因素?

1 个答案:

答案 0 :(得分:2)

我肯定更喜欢Code2

  1. 更简单 - 显式条件指令消失了。

  2. 缩短 - 因为上述原因。

  3. 更容易理解 - 因为上面的1.和2.

  4. 更易于维护:如果在处理“F”时需要更改某些内容,则无法解决“M”的处理问题。

    < / LI>
  5. 更容易扩展。如果将Code2的样式表导入到另一个样式表中,则可以仅覆盖两个模板中的一个 - 使用Code1,需要覆盖整个单片模板,并且可能只是复制一些代码而不进行任何更改。

  6. 记住KISS原则:保持简单,愚蠢......:)

相关问题