0
在XSLT文件我已經定義了一個函數爲什麼這個選擇 - 什麼時候測試總是正確的?
<xsl:function name="my:isValidDate">
<xsl:param name="orgDate" />
<xsl:value-of select="boolean(string-length($orgDate)=10)" />
</xsl:function>
測試日期字符串是否具有有效的長度。 當我使用這個功能
<xsl:choose>
<xsl:when test="my:isValidDate(ValidFrom)">
<xsl:call-template name="formatDate"><xsl:with-param name="orgDate" select="ValidFrom"></xsl:with-param></xsl:call-template>
</xsl:when>
...
</xsl:choose>
它似乎永遠是真的;即使是空的標籤,如<ValidFrom />
也會通過測試並導致奇怪的輸出,因爲不能在空的或無效的日期字符串上調用模板。當我輸出ValidFrom
用於調試問題時,它如預期的那樣是空的。我也嘗試過類似string-length($orgDate)=10
或<xsl:value-of select="boolean($orgDate!='')" />
的函數,但似乎沒有任何工作。 我錯過了什麼?
編輯:這種情況是正確評估,當我內聯函數?!
請顯示[完整的輸入示例和完整的樣式表](http://stackoverflow.com/help/mcve),以便我們可以嘗試重現此問題。謝謝! – 2015-02-06 09:24:14