如何在子字符串中的xslt 1.0中添加十进制数

时间:2017-08-23 13:10:32

标签: xml numbers substring xslt-1.0

我有以下输入xml。

<?xml version = "1.0" encoding = "UTF-8"?>
<values>
    <value>sometext;+123.23;+100.23</value>
    <value>sometext;+004.23;+444.12</value>
</values>

我是XSL 1.0的新手。我想在字符串中添加两个十进制数字,但我收到NaN错误。我怎么做。 我想从上面的输入xml得到以下输出,其中十进制值相加,但我收到NaN错误。

<?xml version="1.0"?>
<Results>
    <Result>+223.46</Result>
    <Result>+448.35</Result>
</Results>

我有如下的XSL文件,

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match = "/"> 
<Results>
<xsl:for-each select="values/value">
  <Result>
     <xsl:value-of select="number(substring(.,10,7)) + 
   number(substring(.,18,7))" />
  </Result>
</xsl:for-each>
</Results>
</xsl:template>

1 个答案:

答案 0 :(得分:0)

不允许数字包含 { series: data, legend: {enabled: true}, xaxis: { type: 'datetime', formatter: () => { return this.value }, title: { text: 0 } } } 符号。

尝试改为:

+

(当然假设位置和长度是恒定的 - 并且数字总是正数)。

我自己的偏好是:

XSLT 1.0

<xsl:value-of select="substring(., 11, 6) + substring(., 19, 6)" />

将与正数和负数一样,并且不依赖于给定字符串中三个标记中任何一个的长度。