![](/img/trans.png)
[英]How to load xml file in Marklogic with special character in element value?
[英]Load multiple XML file (MarkLogic)
我需要在许多文件中进行搜索,但不想在查询中写入它们的名称。 就我而言,我需要查询500个名称完全不同的XML文件 。 所以,有什么办法。
我可以说:
for $x in doc("ALL XML files under a specific directory")
return $x/Something
我正在使用Ubuntu
和MarkLogic5
如果您的文档实际上在“目录”中(例如,它们是类似“ /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()和文档中的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.