Mam następujące plików XML:Marklogic kwerendy na podstawie wartości wielu atrybutów tego samego pierwiastka
sample1.xml <root> <subjectInfo> <subject id="001"/> <subject id="002" role="cross"/> </subjectInfo> </root>
sample2.xml <root> <subjectInfo> <subject id="002"/> <subject id="001" role="cross"/> </subjectInfo> </root>
szukam dokumentów, w których wartość atrybutu id
subject
to "001", ale role
(jeśli jest) tego samego elementu subject
nie jest "krzyżykiem". Tak, w moim przykładzie wynik powinien zawierać sample1.xml
i nie sample2.xml
Myślałem następujące zapytanie będzie wykonać zadanie:
<code>
cts:search(/root,
cts:near-query((
cts:element-attribute-value-query(xs:QName("subject"),xs:QName("id"),"001"),
cts:not-query(cts:element-attribute-value-query(xs:QName("subject"),xs:QName("role"),"cross"))),0)
)
</code>
Ale to nie (zwraca pusty ciąg). Proszę, daj mi taki, który to robi.
Dziękuję bardzo. To dość wyjaśnia. – callow