0
我是XSLT新手。我正在使用郵政編碼,我試圖將零碼填充到5個字符以內的任何郵政編碼。否則,我希望我的代碼完全按照原樣編寫輸入參數。郵編開頭或包含字母時遇到問題。我的輸出正在返回一個NaN。我該如何告訴代碼:只要郵政編碼中包含一個字母,就可以直接寫出郵政編碼而不需要運行「格式編號」邏輯?我知道「開始」和「包含」的功能,但我不完全明白他們是如何工作的。XSLT - 格式編號輸出NaN
<xsl:template name="MyZipCodeUnder5DigitsPadLeftZerosTemplate">
<xsl:param name="BillToZipcode" />
<xsl:choose>
<xsl:when test="string-length($BillToZipcode) < 5">
<xsl:element name="PostalCode">
<xsl:value-of select="format-number($BillToZipcode, '00000')" />
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="PostalCode">
<xsl:value-of select="$BillToZipcode"/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
可能更好寫'號($ BillToZipCode)< 1000'(或者是10000?),使轉換明確。 XSLT 1.0會隱式執行,但如果您將字符串與數字進行比較,則2.0會發生抱怨。 –
@MichaelKay你有一個點(實際上是兩個)。 –
工作正常!謝謝! – SHIGuy