Итак, у меня есть интересная проблема, предположим, у меня есть этот документ (пример. xml) внутри базы данных MarkLogi c:
<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>
Я хочу заменить все «активные» элементы регистрации с одним узлом, поэтому, по сути, мой конечный результат для этого должен быть:
<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>)
Но это результат, который я get:
<Enrolls>
<boom> boom for the actives </boom>
<boom> boom for the actives </boom>
<Enroll>
<Status> Inactive </Status>
<boom> boom </boom>
</Enroll>
</Enrolls>
Код заменяет каждую активную регистрацию тем же узлом, который я указал для замены. Я хочу, чтобы он заменил оба узла одновременно только одним узлом. Как я могу это сделать и получить желаемый результат?