我有一種情況,param將不會被設置,但我嘗試捕捉&處理該sitation不起作用。XSLT:測試參數知道它是否已被設置
我使用了以下內容:
<xsl:template match="xs:complexType">
<xsl:param name="prefix" />
<xsl:variable name="prefix-no-core">
<xsl:choose>
<!-- if no value, default to 'AcRec' -->
<xsl:when test="not($prefix)">
<xsl:value-of select="'AcRec'" />
</xsl:when>
<!-- if 'core', leave as empty string -->
<xsl:when test="$prefix = 'core'">
</xsl:when>
<!-- if 'AcRec', set the value -->
<xsl:when test="$prefix = 'AcRec'">
<xsl:value-of select="$prefix" />
</xsl:when>
</xsl:choose>
</xsl:variable>
<xs:complexType name="{concat($prefix-no-core, @name)}">
...
</xsl:template>
我也第一次測試中嘗試$前綴=「」 - 沒有工作。但如果我使用:
<xsl:value-of select="not($prefix)" />
...值打印出來爲真。但在我的xsl:choose中使用它不會產生任何輸出。
我需要支持其他前綴的可能性。 – 2009-07-13 17:23:55
試過了--xsl:否則會給我誤報,將前綴應用到它不應該使用的地方。 – 2009-07-13 19:21:26
你什麼時候不想應用前綴?再次,給我們一個完整的用例。如果prefix = core,則不需要前綴。如果未設置前綴,則需要AcDec作爲前綴。另一種情況是什麼?您是否想要使用提供的前綴,或者是否需要爲每個「允許」前綴手動添加一個案例?如果是這樣,那麼調用者會提供一個您不認識的前綴? – 2009-07-13 19:56:01