在 Xquery 中使用 fn:string-length 时出错
Error while using fn:string-length in Xquery
我正在尝试在 Xquery 中使用 fn:string-length 函数,奇怪的是我收到了这个错误。
line 19, column 66: {err}XP0004 [{bea-err}XP0004a]: Operator "gt" is not applicable for arguments of type {http://www.w3.org/2001/XMLSchema}integer and {http://www.w3.org/2001/XMLSchema}string
我想做的就是获取 XPath 表达式的长度并将其与某个值进行比较。
{
let $PlaceofDeliveryZoneCodeVal := $getRevenueRequest1/ns0:AlternativeCode/ns0:AlternativeCodeVal/text()
return
if(fn:string-length($PlaceofDeliveryZoneCodeVal) > "8") then
<ns1:GeoId>
<ns1:AlternativeCodeVal>{$PlaceofDeliveryZoneCodeVal}</ns1:AlternativeCodeVal>
</ns1:GeoId>
else()
}
问题是因为整数用引号引起来,所以您是在将整数与字符串进行比较:
(fn:string-length($PlaceofDeliveryZoneCodeVal) > "8")
如果去掉引号,比较会成功:
(fn:string-length($PlaceofDeliveryZoneCodeVal) > 8)
我正在尝试在 Xquery 中使用 fn:string-length 函数,奇怪的是我收到了这个错误。
line 19, column 66: {err}XP0004 [{bea-err}XP0004a]: Operator "gt" is not applicable for arguments of type {http://www.w3.org/2001/XMLSchema}integer and {http://www.w3.org/2001/XMLSchema}string
我想做的就是获取 XPath 表达式的长度并将其与某个值进行比较。
{
let $PlaceofDeliveryZoneCodeVal := $getRevenueRequest1/ns0:AlternativeCode/ns0:AlternativeCodeVal/text()
return
if(fn:string-length($PlaceofDeliveryZoneCodeVal) > "8") then
<ns1:GeoId>
<ns1:AlternativeCodeVal>{$PlaceofDeliveryZoneCodeVal}</ns1:AlternativeCodeVal>
</ns1:GeoId>
else()
}
问题是因为整数用引号引起来,所以您是在将整数与字符串进行比较:
(fn:string-length($PlaceofDeliveryZoneCodeVal) > "8")
如果去掉引号,比较会成功:
(fn:string-length($PlaceofDeliveryZoneCodeVal) > 8)