簡體   English   中英

如果string-length()不起作用,則為XSLT

[英]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&lt;12"> true </xsl:if>

但是,即使滿足條件,if語句也始終無法輸出true。

我已經以各種方式測試了邏輯,例如輸出表達式的值

<xsl:value-of select="$alextest&lt;12"/>',

解析為true,因此比較有效。 我也嘗試過此方法,並且它可以正常工作,這似乎表明該結構是正確的:

allDay:     <xsl:if test="0&lt;12"> true </xsl:if>,

我究竟做錯了什么?

非常感謝

亞歷克斯

&lt; 低於。 13 < 12不可能為真。 我認為您需要<=形式的&lt;=>形式的&gt;

編輯:下面的工作按預期方式進行,因此在您顯示的代碼之外肯定還有其他問題,或者值需要調整。 確保您為變量選擇的表達式確實可以解析為某種東西。

<?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 &lt; 12"><xsl:value-of select="local-name(.)"/>: shorter than 12&#10;</xsl:if>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM