使用XSL 1.0测试一些条件

时间:2015-10-22 19:48:07

标签: xslt xslt-1.0

1)如何使用XSL1.0检查数字变量是否只有4位数。

<xsl:variable name="number" select="0715" />

2)如何使用XSL1.0检查版本变量是否有数字后跟大写

<xsl:variable name="version" select="V1" />

2 个答案:

答案 0 :(得分:2)

  

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检查版本变量是否有数字后跟大写

取决于你的意思&#34;关注&#34; - 介于两者之间吗?如果您的意思是“紧跟着&#39;”,那么您可以使用相同的技巧:

translate(substring($x, 1, 1), '0123456789', '9999999999') = '9' 
 and 
translate(substring($x, 2, 1), 'ABCD...XYZ', 'Z') = 'Z'

答案 1 :(得分:1)

  1. 使用string-length()函数确定......以及字符串的长度。

  2. 您可以测试:

    translate($version, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', 'AAAAAAAAAAAAAAAAAAAAAAAAAA0000000000') = 'A0'

  3. 注意:这会测试单个大写字符后跟一个数字 - IOW,字符串&#34; V1&#34; 传递此测试。

    另请注意,您的变量指向名为V1元素,而不是指向包含&#34; V1&#34;的字符串。