假设我在名为“myDB”的BaseX数据库中拥有这些资源:
i=0
现在我想要这个数据库中特定路径的所有可用子路径段。
示例:
1/A/D/01.xml
1/A/E/02.xml
1/B/F/03.xml
1/B/G/04.xml
2/C/H/05.xml
应该返回序列
getSubPaths('myDB', '1/')
是否有XQuery函数或其他方法来执行此操作?
答案 0 :(得分:1)
这是一种方法:
declare function local:getSubPaths(
$db as xs:string,
$path as xs:string
) as xs:string* {
distinct-values(
for $doc in db:open($db, $path)
return db:path($doc)
=> substring-after($path)
=> replace('/.*', '')
)
};
根据您的具体要求,可能需要更新该函数以接受可能不以斜杠结尾的路径,不返回叶子(文件名)等。