如何在 BaseX 中获取子路径段?
How to get sub path segments in BaseX?
假设我在名为 "myDB":
的 BaseX 数据库中拥有这些资源
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/')
应该return顺序
('A', 'B')
有 XQuery 函数或其他方法吗?
这是一种方法:
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('/.*', '')
)
};
根据您的确切要求,该函数可能需要更新以也接受可能不以斜杠结尾的路径,而不是 return 离开(文件名)等
假设我在名为 "myDB":
的 BaseX 数据库中拥有这些资源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/')
应该return顺序
('A', 'B')
有 XQuery 函数或其他方法吗?
这是一种方法:
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('/.*', '')
)
};
根据您的确切要求,该函数可能需要更新以也接受可能不以斜杠结尾的路径,而不是 return 离开(文件名)等