我想通过XQJ API查询eXist数据库。因此,我有一个XQuery文件,希望将其应用于数据库的不同集合中的几个不同文档。
我的问题是,如何设置文档/集合的路径?我只想将路径应用于特定的文档/集合,而不能直接在XQuery文档中设置路径(使用XQuery (‘XQuery / to /doc’)函数),因为我想将相同的路径应用于具有不同路径的多个文件。
我可以将Java变量绑定到Xquery表达式,但使用XQJ API必须有更好的方法来完成此任务。希望你能帮我一点忙。
发布于 2012-10-05 19:03:16
如果预先知道特定的文档URI,那么可以将一组URI绑定为xs:string序列,然后在XQuery表达式中迭代它们,根据需要对每个URI执行操作。
declare variable $uris as xs:string* external;
for $uri in $uris
return (
(: perform operation against $uri :)
)或者,如果您知道集合uri,
declare variable $collection-uri as xs:string external;
for $document-node in fn:collection($collection-uri)
return (
(: perform operation against document-node() :)
)在XQJ的未来版本中,您将能够将集合设置为默认上下文,这与eXist标准和XQuery 1.0 / 3.0标准背道而驰,但是其他用户似乎非常需要此功能。
https://stackoverflow.com/questions/12725045
复制相似问题