在 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)