Я работаю над согласованием данных в MarkLogic, используя javascript. В настоящее время для моего вывода я могу отображать все дочерние элементы Activity
, но проблема в том, что родительский элемент Activities
также отображается в двух экземплярах.
Вот текущий вывод, где <Activities>
появляются только для каждого Activity
:
<Activities datatype="array">
<Activity>
<ActivityCrewSize>10</ActivityCrewSize>
<ActivitySeqNo>1</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
<Activities datatype="array">
<Activity>
<ActivityCrewSize>23</ActivityCrewSize>
<ActivitySeqNo>2</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
<Activities datatype="array">
<Activity>
<ActivityCrewSize>50</ActivityCrewSize>
<ActivitySeqNo>3</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
И вот мой желаемый результат, где <Activities>
появляется только один раз
<Activities datatype="array">
<Activity>
<ActivityCrewSize>10</ActivityCrewSize>
<ActivitySeqNo>1</ActivitySeqNo>
<ActivityDesc/>
</Activity>
<Activity>
<ActivityCrewSize>23</ActivityCrewSize>
<ActivitySeqNo>2</ActivitySeqNo>
<ActivityDesc/>
</Activity>
<Activity>
<ActivityCrewSize>50</ActivityCrewSize>
<ActivitySeqNo>3</ActivitySeqNo>
<ActivityDesc/>
</Activity>
</Activities>
Ниже мой текущий код для текущего вывода:
obj.Activities = [];
let act = {
'$type': 'Activity',
'$version': '0.0.1',
}
for (const item of activities) {
act.ActivityCrewSize = fn.normalizeSpace(hl.elementText(item, "CrewSize", true));
act.ActivitySeqNo = fn.normalizeSpace(hl.elementText(item, "SeqNo", true));
act.ActivityDesc = hl.elementText(item, null, true);
obj.Activities.push(act);
}
return obj;