Xml 如何限制XSL中的有效位数?

Xml 如何限制XSL中的有效位数?,xml,xslt,format,limit,Xml,Xslt,Format,Limit,我需要一个字段的值是类似于“12345678”(在mots 8位)或“12345678.1234”(8位有效数字和小数点后4位)的值。这些数字在用户实际输入时进行检查。这取决于用户输入的内容。但他不能超过限制 我尝试了格式化数字函数,但它不起作用。 我的雇主不允许我在这里复制粘贴代码 任何帮助都将不胜感激。 谢谢 Aashiq Hussain.那么,您想截断小数点前超过8位或小数点后超过4位的任何内容吗?这个怎么样 format-number(. mod 100000000, '#.####')

我需要一个字段的值是类似于“12345678”(在mots 8位)或“12345678.1234”(8位有效数字和小数点后4位)的值。这些数字在用户实际输入时进行检查。这取决于用户输入的内容。但他不能超过限制

我尝试了格式化数字函数,但它不起作用。 我的雇主不允许我在这里复制粘贴代码

任何帮助都将不胜感激。 谢谢
Aashiq Hussain.

那么,您想截断小数点前超过8位或小数点后超过4位的任何内容吗?这个怎么样

format-number(. mod 100000000, '#.####') 

此转换

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="x">
  <xsl:variable name="vIntPart" select="floor(.)"/>
  <xsl:variable name="vFractPart" select=". - $vIntPart"/>

  <xsl:value-of select="concat(substring($vIntPart, 1,8),
                               '.',
                               substring($vFractPart*10000, 1,4)
                               )"/>
 </xsl:template>
</xsl:stylesheet>

如果您无法共享您的代码,请您至少告诉我们
format-number()
以何种方式不起作用?对于那些试图给技术帮助的人来说,“它不起作用”比诅咒词更令人不快。这是我第一次遇到XSL。我希望格式编号(,,“00000000.0000”)的工作方式类似于“12345678.1234”。但我认为,这不是这个函数应该做的。简言之,我需要任何其他方式来做我想做的事。:)同样,格式编号与您的期望有什么不同?它将截断小数部分而不是整数部分(因为这样做通常是不明智的)。你是说如果你的值是1234567890.1234567,你会希望结果是34567890.1234吗?我不想让用户在12345678之后输入更多的数字。他只能输入一个点,然后输入1234(同样,他不能超过4)。也就是说,点前只有8位或8位加上点后4位。在js中有一些onkeypress事件。但我希望类似于XSLT中的内容。恐怕这没有多大意义。XSLT将XML输入转换为XML输出。它不能对用户交互施加控制。如果您使用XSLT生成用户将看到的HTML,那么您生成的HTML应该进行输入验证,而不是XSLT。实际上,这是更好的解决方案
<t>
 <x>1234567890.9876543</x>
 <x>1234567890</x>
 <x>.9876543</x>
</t>
 12345678.9876
 12345678.0
 0.9876