Tôi có XMLs sau:MarkLogic truy vấn dựa trên giá trị của nhiều thuộc tính của cùng một nguyên tố
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>
tôi đang tìm kiếm các tài liệu ở đâu giá trị của id
thuộc tính của subject
là "001" nhưng role
(nếu ở đó) của cùng một yếu tố subject
không phải là "chéo" .Vì vậy, trong ví dụ của tôi kết quả phải chứa sample1.xml
và không sample2.xml
tôi nghĩ các truy vấn sau đây sẽ thực hiện công việc:
<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>
Nhưng nó không (trả về một chuỗi rỗng). Xin hãy cho tôi một cái.
Cảm ơn bạn rất nhiều. Điều đó giải thích khá nhiều. – callow