xdmp:directory 完整网址
xdmp:directory for full urls
是否有类似于 xdmp:directory 的东西用于遍历具有不以“/”开头的 uris 的文档,即“http://something.other.com/documents/”?或者有什么方法可以获取文档 uri 与正则表达式匹配的所有文档?
例如,我想拉取文档:
cts:uri-match
应该正是您要查找的内容。您可以在其中放置一个通配符表达式,例如 cts:uri-match('/myDirectory/sub-dir/*.xml')
。这将 return 一个 URI 列表作为字符串,然后您可以通过执行以下操作来大量获取这些文档(注意:fn:doc()
可以采用零到多个 uri):
let $uris as xs:string* := cts:uri-match("/you/directory/structure/*.xml")
let $docs as document-node()* := fn:docs($uris)
return $docs
根据下面 Tyler 的评论,如果可能,您应该在此搜索中传递 cts:query
限定符,例如:
let $uris as xs:string* := cts:uri-match("/your/directory/structure/*.xml", (), cts:directory-query("/your/directory/structure/", "infinity"))
let $docs as document-node()* := fn:docs($uris)
return $docs
在上面的示例中,cts:directory-query
将范围缩小了一点,请注意 "infinity" 会将所有子目录带到无限级别。
或者,如果它们都在您想要的目录(或多个目录)下,并且不需要通配符来进一步限定文件名等,您可以这样更好:
cts:search(fn:collection(), cts:directory-query("/some-dir/", "infinity"))
但如果你想使用正则表达式式的搜索,第一个选项肯定是你的朋友。
是否有类似于 xdmp:directory 的东西用于遍历具有不以“/”开头的 uris 的文档,即“http://something.other.com/documents/”?或者有什么方法可以获取文档 uri 与正则表达式匹配的所有文档?
例如,我想拉取文档:
cts:uri-match
应该正是您要查找的内容。您可以在其中放置一个通配符表达式,例如 cts:uri-match('/myDirectory/sub-dir/*.xml')
。这将 return 一个 URI 列表作为字符串,然后您可以通过执行以下操作来大量获取这些文档(注意:fn:doc()
可以采用零到多个 uri):
let $uris as xs:string* := cts:uri-match("/you/directory/structure/*.xml")
let $docs as document-node()* := fn:docs($uris)
return $docs
根据下面 Tyler 的评论,如果可能,您应该在此搜索中传递 cts:query
限定符,例如:
let $uris as xs:string* := cts:uri-match("/your/directory/structure/*.xml", (), cts:directory-query("/your/directory/structure/", "infinity"))
let $docs as document-node()* := fn:docs($uris)
return $docs
在上面的示例中,cts:directory-query
将范围缩小了一点,请注意 "infinity" 会将所有子目录带到无限级别。
或者,如果它们都在您想要的目录(或多个目录)下,并且不需要通配符来进一步限定文件名等,您可以这样更好:
cts:search(fn:collection(), cts:directory-query("/some-dir/", "infinity"))
但如果你想使用正则表达式式的搜索,第一个选项肯定是你的朋友。