【发布时间】:2015-10-22 19:48:06
【问题描述】:
1) 如何使用 XSL1.0 检查数字变量是否只有 4 位。
<xsl:variable name="number" select="0715" />
2) 如何使用 XSL1.0 检查版本变量是否有数字后跟大写字母
<xsl:variable name="version" select="V1" />
【问题讨论】:
1) 如何使用 XSL1.0 检查数字变量是否只有 4 位。
<xsl:variable name="number" select="0715" />
2) 如何使用 XSL1.0 检查版本变量是否有数字后跟大写字母
<xsl:variable name="version" select="V1" />
【问题讨论】:
1) 如何使用 XSL1.0 检查数字变量是否只有 4 位。
<xsl:variable name="number" select="0715" />
这是不可能的,因为$number的值和你写的完全一样
<xsl:variable name="number" select="715" />
在您测试它的存在之前很久,微不足道的零就消失了。所以也许你只想要($number &lt; 10000)?
另一方面,如果您要测试一个字符串是否恰好包含四位数字,请使用translate($x, '0123456789', '9999999999') = '9999'。
2) 如何使用 XSL1.0 检查版本变量是否有数字后跟大写字母
取决于您所说的“跟随”是什么意思 - 介于两者之间吗?如果您的意思是“立即跟进”,那么您可以使用相同的技巧:
translate(substring($x, 1, 1), '0123456789', '9999999999') = '9'
and
translate(substring($x, 2, 1), 'ABCD...XYZ', 'Z') = 'Z'
【讨论】:
使用string-length() 函数确定...嗯,字符串的长度。
你可以测试:
translate($version, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', 'AAAAAAAAAAAAAAAAAAAAAAAAAA0000000000') = 'A0'
注意:这会测试单个大写字符后跟单个数字 - IOW,字符串“V1”通过此测试。
还要注意,您的变量指向一个名为V1 的元素,而不是包含“V1”的字符串。
【讨论】: