我最近已将XSL更改为版本1.0版,以添加一些更改。我需要为以下行添加总和函数:
<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中的键入更强吗?我可以解决哪些方法?
您传递给sum()
的XPath无效:
/ns0:PublishZXQPPWORKORDER/ns0:ZXQPPWORKORDERSet
/ns0:WORKORDER/ns0:WOACTIVITY/(ns0:ESTLABCOST + ns0:ESTMATCOST))
^
著名的(
不属于那里。
我也不确定为什么您要从sum()
的输出中创建一个序列,或者以后在代码中如何使用此序列,但是如果没有别的,您的更改在语法上是错误的。