Итак, у меня есть интересная проблема, предположим, что у меня есть этот документ (example.xml) в базе данных MarkLogic:
<Enrolls>
<Enroll>
<Status> Active </Status>
<boom> boom2 </boom>
</Enroll>
<Enroll>
<Status> Active </Status>
<boom> boom </boom>
</Enroll>
<Enroll>
<Status> Inactive </Status>
<boom> boom </boom>
</Enroll>
</Enrolls>
Я хочу заменить все «активные» элементы Enroll одним узлом, поэтому, по сути, мой конечный результат должен быть таким:
<Enrolls>
<boom> boom for the actives </boom>
<Enroll>
<Status> Inactive </Status>
<boom> boom </boom>
</Enroll>
</Enrolls>
Чтобы это сделать, вот код, который я написал:
xdmp:node-replace((doc("example.xml")/Enrolls/Enroll[Status eq " Active "]), <boom> boom for the actives </boom>)
Но вот результат, который я получаю:
<Enrolls>
<boom> boom for the actives </boom>
<boom> boom for the actives </boom>
<Enroll>
<Status> Inactive </Status>
<boom> boom </boom>
</Enroll>
</Enrolls>
Код заменяет каждую активную регистрацию тем же узлом, который я указал для замены. Я хочу, чтобы он заменил оба узла одновременно только одним узлом. Как мне это сделать и получить желаемый результат?