使用xslt进行数字转换编码的指数?

时间:2016-01-07 12:40:49

标签: xml excel xslt-2.0

我有一个名为adkey的列,如图所示。当我将excel转换为xml时,我将获得指数forrmat中的xml标记。例如

 <AdKey>2.0160106001E10</AdKey> 

但是,我想要一个输出如下

<AdKey>20160106001</AdKey>

enter image description here

是否可以在xslt中执行此操作?

1 个答案:

答案 0 :(得分:1)

首先,您应该提供产生错误的代码示例(XSLT,XML等)。

也许你只需要将值转换为xs:decimal,然后将其转换为字符串。例如:

string(xs:decimal(myValue))

说明:将float或double转换为字符串时,如果该值不在0.000001和1000000之间,则应使用科学记数法对其进行转换。摘自W3C XQuery 1.0 and XPath 2.0 Functions and Operators, Casting to xs:string and xs:untypedAtomic

  
      
  • 如果SV的绝对值大于或等于0.000001(百万分之一)且小于1000000(百万分之一),则该值将转换为xs:decimal,结果xs:decimal为根据上面的规则转换为xs:string,就像使用xs:decimal的实现一样,对totalDigits或fractionDigits facet没有限制。

  •   
  • 如果SV的值为零或负零,则TV分别为“0”或“-0”。

  •   
  • 如果SV为正或负无穷大,则TV分别为字符串“INF”或“-INF”。

  •   
  • 在其他情况下,结果由尾数组成,其尾部形式为xs:decimal,后跟字母“E”,后跟指数,它具有xs:integer的词法形式。指数中禁止前导零和“+”符号。对于尾数,必须有一个小数点,小数点前必须有一个数字,必须为非零。禁止使用“+”标志。小数点后必须至少有一位数。除了这个强制性数字外,禁止使用零位数字。

  •