Ich habe folgende xmls:Marklogic Abfrage basierend auf den Werten von mehreren Attributen des gleichen Elements
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>
ich für die Dokumente bin auf der Suche, wo Wert von id
Attribut von subject
ist "001" aber role
(wenn es da ist) der gleichen subject
Element ist nicht "Cross" .So, in meinem Beispiel sollte das Ergebnisenthaltenund nicht sample2.xml
Ich dachte, die folgende Abfrage die Arbeit machen würde:
<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>
Aber es funktioniert nicht (gibt eine leere Sequenz). Bitte gib mir eines, das tut.
Vielen Dank. Das erklärt ziemlich viel. – callow