【发布时间】:2023-02-21 19:11:56
【问题描述】:
我正在执行 cts:search 并使用 MarkLogic 10 中的 json:transform-to-json() 函数将结果节点转换为 JSON。
示例代码:
let $config := json:config("custom")
let $response := cts:search(fn:doc(),$query)
return json:transform-to-json($response,$config)
生成的 XML 节点可能具有同名的子元素。我希望在转换期间将它们转换为数组,因此我需要获取所有具有相同名称的多个子元素,并在转换前将 QName 值添加为 array-element-names 配置。
这里的问题是我不知道会出现在结果 XML 节点中的数组子元素名称,而且一些结果可能有更多数量的子节点(大于 50 个节点)。
示例 XML 结果节点:
<meta>
<id>draa066</id>
<id>draa088</id>
<xref rid="aff1" ref-type="aff"/>
<xref rid="cor1" ref-type="corresp"/>
<email>surowiec@mathematik.uni-marburg.de</email>
</meta>
预期的 JSON 输出:
{
"meta": {
"id": [
"draa066",
"draa088"
],
"xref": [
"",
""
],
"email": "surowiec@mathematik.uni-marburg.de"
}
}
请让我知道这样做的可能性。
【问题讨论】:
标签: json xml xquery marklogic marklogic-10