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