我有一个名为adkey的列,如图所示。当我将excel转换为xml时,我将获得指数forrmat中的xml标记。例如
<AdKey>2.0160106001E10</AdKey>
但是,我想要一个输出如下
<AdKey>20160106001</AdKey>
是否可以在xslt中执行此操作?
答案 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的词法形式。指数中禁止前导零和“+”符号。对于尾数,必须有一个小数点,小数点前必须有一个数字,必须为非零。禁止使用“+”标志。小数点后必须至少有一位数。除了这个强制性数字外,禁止使用零位数字。