为什么这个XQuery不起作用?

时间:2013-07-18 13:59:22

标签: datetime xquery

 let $ds := cts:search(
      fn:doc(),
      cts:and-query(
       (            
         cts:collection-query(('InProgress_Audit'))
       )
      )) where not(contains( $ds//TitleDate/text(), "Z"))

      return count($ds)

TitleDate节点包含日期时间。

返回:

  

[1.0-ml] XDMP-ARGTYPE :(错误:XPTY0004)   FN:含有((FN:DOC( “/ icis.dnr.audit.issue / E-STY / E-STY_201212072330_20121207164208.xml”)/ ProductIssue / TitleDate /文()   FN:DOC( “/ icis.dnr.audit.issue / E-TiO 2的EU / E-TiO 2的EU_201303090245_20130307145047.xml”)/ ProductIssue / TitleDate /文()   fn:doc(“/ icis.dnr.audit.issue / F-ETHY / F-ETHY_201302221700_20130222055846.xml”)/ ProductIssue / TitleDate / text(),...),“Z”) - arg1不是类型XS:字符串

1 个答案:

答案 0 :(得分:2)

$ds//TitleDate/text()会返回多个项目,而contains(...)只允许一个字符串作为第一个参数。

将contains移入谓词中,因此每个输入都会调用它:

not($ds//TitleDate/text()[contains(., "Z")])