在eXist-db中查询集合

时间:2013-08-02 12:57:15

标签: xml xquery exist-db

我在以下集合中的eXist-db中有XML文件:

  • / db / OCR / Everest_Bank /(xml文件在这里)
  • / db / OCR / Siddhartha_Bank /(xml文件在这里)
  • / db / OCR / ABC_Bank /(xml文件在这里)

我希望在满足条件的所有“银行”中的/ db / OCR集合中运行XQuery,并希望返回满足条件的银行名称。我写了一个查询但是卡在了FLWOR表达式的返回部分。

declare default element namespace 'http://www.xbrl.org/2003/instance';
declare namespace ifrs = 'http://xbrl.ifrs.org/taxonomy/2013-03-28/ifrs';

for $x in collection("/db/OCR")
let $z := $x/xbrl/ifrs:Assets (: want to have query in assets of all files in the banks :)
return
    if (exists($z) and xs:integer($z/text())>9999999) 
    then ???

现在我如何为符合条件的结果返回像“Everest_Bank”这样的集合名称?请帮忙。

1 个答案:

答案 0 :(得分:2)

在XQuery引擎上执行此操作的通用和可移植方式是:

document-uri( root($z) )

将在eXist-db中为您提供文档的URI;集合信息在URI中;

eXist-db特定方式(警告:不可移植到其他XQuery实现)是:

util:collection-name( $z )

http://exist-db.org/xquery/util函数名称空间中。