删除MarkLogic Javascript中重复的元素父名称
我正在使用javascript协调MarkLogic中的数据。目前,对于我的输出,我能够显示所有子元素删除MarkLogic Javascript中重复的元素父名称,javascript,marklogic,marklogic-dhf,Javascript,Marklogic,Marklogic Dhf,我正在使用javascript协调MarkLogic中的数据。目前,对于我的输出,我能够显示所有子元素Activity,但问题是父元素Activities也显示为两个 这是当前输出,其中仅对每个活动显示: 10 1. 23 2. 50 3. 不是Javascript专家,但是如果您使用另一个根元素包装输入,然后在Qconsole上运行以下xquery代码,您将获得所需的结果 ` let$doc:= 10 1. 23 2. 50 3. 返回 { 对于$doc/Activities/Activi
Activity
,但问题是父元素Activities
也显示为两个
这是当前输出,其中
仅对每个活动显示:
10
1.
23
2.
50
3.
不是Javascript专家,但是如果您使用另一个根元素包装输入,然后在Qconsole上运行以下xquery代码,您将获得所需的结果
`
let$doc:=
10
1.
23
2.
50
3.
返回
{
对于$doc/Activities/Activity中的每个$
每件$
}
`如果为每个项目创建单独的JavaScript对象,是否会产生所需的结果
大致如下:
obj.Activities = [];
for (const item of activities) {
obj.Activities.push({
'$type': 'Activity',
'$version': '0.0.1',
ActivityCrewSize: fn.normalizeSpace(hl.elementText(item, "CrewSize", true)),
ActivitySeqNo, fn.normalizeSpace(hl.elementText(item, "SeqNo", true)),
ActivityDesc: hl.elementText(item, null, true)
});
}
return obj;
或者,NodeBuilder可以直接构造XML:
如果您可以提供一些示例数据并扩展代码以显示这些JSON对象如何转换为XML,那么您的问题就更容易解决了。您好@ehennum,谢谢您的回答。我尝试过这个建议,但是父活动仍然显示为两个。正如Dave Casell所建议的,下一步可能是修改这个问题,以显示如何将JSON转换为XML。感谢您的回答,但解决方案应该是javascript
obj.Activities = [];
for (const item of activities) {
obj.Activities.push({
'$type': 'Activity',
'$version': '0.0.1',
ActivityCrewSize: fn.normalizeSpace(hl.elementText(item, "CrewSize", true)),
ActivitySeqNo, fn.normalizeSpace(hl.elementText(item, "SeqNo", true)),
ActivityDesc: hl.elementText(item, null, true)
});
}
return obj;