【发布时间】:2020-10-27 16:28:17
【问题描述】:
我收到此错误,因为我们将字段设为多值(多个相同元素的列表):
argX is not of type xs:anyAtomicType?
这是我们用来从 MarkLogic 获取值的查询:
declare variable $uris as xs:string external;
for $uri in tokenize($uris,';')
let $doc := fn:doc($uri)
return xdmp:gzip(
xdmp:unquote(fn:concat(
"<item>",
"<uri>",
$uri,
"</uri>",
"<date-loaded>",
$doc/date-loaded,
"</date-loaded>",
"<collections>",
string-join(xdmp:document-get-collections($uri), ";"),
"</collections>",
"</item>"
))
)
现在<date-loaded> 字段可以有多个值,如下所示:
<date-loaded>2020-01-01</date-loaded>
<date-loaded>2020-01-02</date-loaded>
<date-loaded>2020-01-03</date-loaded>
这里的顺序很重要。我应该如何将此查询更改为正确的查询,以检索 date-loaded 的所有值并将它们分别放在单独的 XML 元素中?
【问题讨论】:
-
您的文档是什么样的?
$doc/date-loaded如何选择多个项目? XPath 是为这些日期选择一系列text()节点,即第一项是“2020-01-01”,还是选择一系列元素<date-loaded>2020-01-01</date-loaded>?