我使用XPATH 1.0和XSLT 1.0。我想知道下面的代码
<xsl:choose>
<xsl:when test="@name='some'"><![CDATA[one]]></xsl:when>
<xsl:otherwise><![CDATA[two]]></xsl:otherwise>
</xsl:choose>
与
在性能上有区别 <xsl:choose>
<xsl:when test="@name='some'"><xsl:value-of select="'one'"/></xsl:when>
<xsl:otherwise><xsl:value-of select="'two'"/></xsl:otherwise>
</xsl:choose>
如果我们知道必须有,那么就不需要在select?这是一个很好的做法,使用<![CDATA[one]]>
。或者它的使用减少了xslt编译时间,或者它易于阅读?
在我看来,如果有性能改进,那么证明您的第一个示例并不那么重要。
在这种情况下,我将更多地关注维护和可读性作为第二个例子。有了这个解决方案,如果你想改变元素的呈现方式(是否为cdata),你可以在输出元素中使用属性cdata-section-elements。
如何在xslt中使用cdata