我想知道是否可以根據屬性值在XSLT(2.0)中分派到<xsl:template>
。讓我們假設下面的示例XML:基於屬性值的XSLT中的模板分派
<root>
<field code="a">Content A</field>
<field code="b">Content B</field>
</root>
我要爲<xsl:template>
match
的屬性,將派遣處理給定屬性的每個值定義的模板寫的XPath選擇。 A不適用ï五個方法可以在每個模板比較屬性值:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:template match="/root">
<xsl:apply-templates select="field"/>
</xsl:template>
<xsl:template match="field[@code = 'a']">
Code A processing...
</xsl:template>
<xsl:template match="field[@code = 'b']">
Code B processing...
</xsl:template>
</xsl:stylesheet>
類似的,可以使用<xsl:choose>
和<xsl:when>
每一個可能的碼值,其中可用於<xsl:call-template/>
,調用專門命名模板。
有沒有更好的解決方案來做基於屬性值的模板調度?
避免''支持模板匹配,如果可以的話(有時您不能,比如在測試變量或參數值時)。 –
Tomalak
準確。我的首選方式絕對是通過使用模板匹配。 –