[英]XSLT if string-length() does not work
我正在嘗試使用字符串的長度來確定它是日期還是日期和時間。 日期有10個字符,日期時間有24個字符。如果沒有時間,則日歷應將其解釋為全天事件。
所以-這是我使用的if語句:
<xsl:variable name="alextest" select="string-length(gd:when/@startTime)" />
allDay: <xsl:if test="$alextest<12"> true </xsl:if>
但是,即使滿足條件,if語句也始終無法輸出true。
我已經以各種方式測試了邏輯,例如輸出表達式的值
<xsl:value-of select="$alextest<12"/>',
解析為true,因此比較有效。 我也嘗試過此方法,並且它可以正常工作,這似乎表明該結構是正確的:
allDay: <xsl:if test="0<12"> true </xsl:if>,
我究竟做錯了什么?
非常感謝
亞歷克斯
<
低於。 13 < 12
不可能為真。 我認為您需要<=
形式的<=
或>
形式的>
。
編輯:下面的工作按預期方式進行,因此在您顯示的代碼之外肯定還有其他問題,或者值需要調整。 確保您為變量選擇的表達式確實可以解析為某種東西。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<el1>123456789101112</el1>
<el2>123456</el2>
<el3>1234567891011121314</el3>
<el4></el4>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="text"/>
<xsl:template match="/*">
<xsl:for-each select="*">
<xsl:variable name="test" select="string-length(.)" />
<xsl:if test="$test < 12"><xsl:value-of select="local-name(.)"/>: shorter than 12 </xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.