簡體   English   中英

XSLT 條件語句中的 concat 和 substring 的語法

[英]Syntax to concat & substring in XSLT conditional statements

我正在嘗試通過在聲明的變量上使用 substring 和 concat 將連字符添加到字符串中,但當前代碼不起作用。 我懷疑存在語法錯誤,但我不確定它可能是什么,因為我還是新手,不知道要尋找什么。

XML

XML 有一行如下所示:

<LoanDate>1222022</LoanDate>

我在XSLT中有以下內容:

<xsl:variable name="date" select="*[translate(local-name(), $uppercase, $smallcase)='loandate']"/>
     <CreditPulledDate>
          <xsl:choose>
               <xsl:when test="string-length($date) = 7">
                    <xsl:value-of select="concat(substring($date, 1, 1), '-', substring($date, 2, 2), '-', substring($date, 4)"/>
               </xsl:when>
               <xsl:otherwise>
                    <xsl:value-of select="concat(substring($date, 1, 2), '-', subsctring($date, 3, 2), '-', substring($date, 5)"/>
                    </xsl:otherwise>
          </xsl:choose>
</CreditPulledDate>

當我從模板中刪除上述內容時,它可以工作。 當它被包括在內時,它不會。 所以我懷疑這部分存在語法錯誤。 任何見解都值得贊賞。 謝謝!

我用以下代碼測試了你的代碼:

<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />

...

  <xsl:variable name="date" select="*[translate(local-name(), $uppercase, $smallcase)='loandate'][1]"/>
  <CreditPulledDate>
      <xsl:choose>
           <xsl:when test="string-length($date) = 7">
                <xsl:value-of select="concat(substring($date, 1, 1), '-', substring($date, 2, 2), '-', substring($date, 4))"/>
           </xsl:when>
           <xsl:otherwise>
                <xsl:value-of select="concat(substring($date, 1, 2), '-', substring($date, 3, 2), '-', substring($date, 5))"/>
           </xsl:otherwise>
     </xsl:choose>
</CreditPulledDate>

它可以按需要工作(稍作修改)。
您在xsl:value-of表達式的末尾缺少一些右括號。

暫無
暫無

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

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