繁体   English   中英

加载多个XML文件(MarkLogic)

[英]Load multiple XML file (MarkLogic)

我需要在许多文件中进行搜索,但不想在查询中写入它们的名称。 就我而言,我需要查询500个名称完全不同的XML文件 所以,有什么办法。

我可以说:

for $x in doc("ALL XML files under a specific directory")
return $x/Something

我正在使用UbuntuMarkLogic5

如果您的文档实际上在“目录”中(例如,它们是类似“ /a/b/c.xml ”的URL形式),则可以使用xdmp:directory()

http://docs.marklogic.com/xdmp:目录

for $x in xdmp:directory("/a/b/") 
return $x/something

如果用“目录”表示Marklogic目录,则Mads的回答是正确的。 如果您指的是文件系统路径,那么答案是在Marklogic处理文档之前,您需要将它们加载到数据库中。

为此,请查看ML计算机上的端口8000(localhost?),然后在该页面上选择“加载内容”选项。 这将允许您选择要从中加载文档的文件系统目录。

通过在加载之前更改“文档设置”,您还可以选择应保留多少文件系统路径(如果有的话)作为Markloic中文档URI的一部分,并为所有加载的文档分配一个集合。 我鼓励您同时做这两项; 一旦载入,它们将简化所有这些文档的唯一引用(使用完成后,即可查询或删除)。

加载文档后,您可以使用xdmp:directory()fn:collection()或您喜欢的任何其他方法来查询它们。

如果用户具有正确的权限,则可以从Marklogic查看文件系统。 您可以通过这种方式将数据加载到marklogic中,但是您不应该以这种方式查询数据。

这是一个示例,可能会帮助您找到所需的内容。

 declare namespace dir = "http://marklogic.com/xdmp/directory";

  for $file in xdmp:filesystem-directory("/home/user/desktop/xml/")/dir:entry

  return xdmp:filesystem-file($file/dir:filename) 

要在特定目录中搜​​索文件,请查看cts:directory-query()和文档中的示例。

http://docs.marklogic.com/cts:目录查询

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM