XML-23006:(错误)值与升级到XSL 2.0时所需的类型不匹配

时间:2016-06-16 19:39:59

标签: xml xslt-1.0 xslt-2.0

我最近将我的XSL从版本1.0更改为版本2.0以添加一些更改。我需要为以下行添加SUM函数:

<xsl:sequence select="sum (/ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet/ns0:WORKORDER/ns0:WOACTIVITY/(ns0:ESTLABCOST + ns0:ESTMATCOST))"/>

这导致我得到错误: XML-23006 :(错误)值与所需类型

不匹配

在以下行中:

<xsl:value-of select="/ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet/ns0:WORKORDER/ns0:PLUSDESTCONTROL/ns0:PLUSDESTVERSION[ns0:ESTVERSION=$VERSION]/ns0:PLUSDACGDETAIL/ns0:LBRCOSTOUT + /ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet/ns0:WORKORDER/ns0:PLUSDESTCONTROL/ns0:PLUSDESTVERSION[ns0:ESTVERSION=$VERSION]/ns0:PLUSDACGDETAIL/ns0:SERVICECOST + /ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet/ns0:WORKORDER/ns0:PLUSDESTCONTROL/ns0:PLUSDESTVERSION[ns0:ESTVERSION=$VERSION]/ns0:PLUSDACGDETAIL/ns0:MATLCOSTIN + /ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet/ns0:WORKORDER/ns0:PLUSDESTCONTROL/ns0:PLUSDESTVERSION[ns0:ESTVERSION=$VERSION]/ns0:PLUSDACGDETAIL/ns0:MATLCOSTOUT + /ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet/ns0:WORKORDER/ns0:PLUSDESTCONTROL/ns0:PLUSDESTVERSION[ns0:ESTVERSION=$VERSION]/ns0:PLUSDACGDETAIL/ns0:TOOLCOSTIN + /ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet/ns0:WORKORDER/ns0:PLUSDESTCONTROL/ns0:PLUSDESTVERSION[ns0:ESTVERSION=$VERSION]/ns0:PLUSDACGDETAIL/ns0:TOOLCOSTOUT"/>

我使用的样本数据如下:

<LBRCOSTOUT>0.0</LBRCOSTOUT>
<SERVICECOST>0.0</SERVICECOST>
<MATLCOSTIN>260.36</MATLCOSTIN>
<MATLCOSTOUT>0.0</MATLCOSTOUT>
<TOOLCOSTIN>0.0</TOOLCOSTIN>
<TOOLCOSTOUT>0.0</TOOLCOSTOUT>

这是因为XSL 2.0的输入更强?我有什么方法可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

您传递给sum()的XPath无效:

/ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet
    /ns0:WORKORDER/ns0:WOACTIVITY/(ns0:ESTLABCOST + ns0:ESTMATCOST))
                                  ^

注意到的(不属于那里。

我也不确定您为什么要从sum()的输出创建序列,或者稍后如何在代码中使用此序列,但如果您的更改在语法上错误,没别的。