У меня есть документы, такие как -Fetch ограниченные элементы из документа
<a:root xmlns:a = 'some-ns'>
<a:id>some-id</a:id>
.
.
<a:number field='field1'>3</a:number>
<a:number field='field2'>4</a:number>
.
.
</a:root>
У меня есть идентификаторы для документов для извлечения, я хочу, чтобы извлечь a:id
и a:number
всех тех документов, которые соответствуют запросу без используя XPath. Я могу легко получить документ, соответствующий идентификатору, с помощью cts.elementValueQuery
, а затем использовать XPath для получения элементов. Что-то вроде этого -
cts.search(
cts.andQuery(
[
cts.collectionQuery('liveCollection'),
cts.elementValueQuery(fn.QName(a, 'id'), 'http://iddn.icis.com/series/energy/cegh-day-ahead-index')
]
)
).next().value.getElementsByTagNameNS(a, 'number')
Но я хочу, чтобы MarkLogic возвращал только выбранные элементы.
Может ли кто-нибудь сказать мне оптимизированный способ сделать это?
Я написал этот запрос (не давая мне ожидаемый результат) -
cts.elementValueCoOccurrences(
fn.QName(c, 'id'),
fn.QName(c, 'precision'),
('map'),
cts.andQuery(
[
cts.collectionQuery(liveCollection),
cts.elementValueQuery(fn.QName(c, 'id'), seriesIds)
]
)
)
Я ищу, чтобы получить выходной сигнал, как это -
| <a:id>id-1</a:id>
| <a:number field='field1'>3</a:number>
|
| <a:id>id-1</a:id>
| <a:number field='field2'>4</a:number>
|
| <a:id>id-2</a:id>
| <a:number field='field1'>3</a:number>
|
Можете ли вы показать, как должен выглядеть вывод, и что вы пробовали сами? – grtjn
@grtjn Я обновил вопрос. Не могли бы вы предложить что-то сейчас? –