0
這個問題像this one但不同。Marklogic查詢基於元素的值和同一元素的多個屬性
我有以下個XML:
doc1.xml
<Companies>
<Company id="63919" isSubject="N" refType="SEC">
<IsRestricted value="true"/>
<Name>Caixa</Name>
</Company>
<Company id="13332" isSubject="Y" refType="PRI">
<Name>Banco</Name>
</Company>
</Companies>
doc2.xml
<Companies>
<Company id="13336" isSubject="N" refType="SEC">
<IsRestricted value="false"/>
<Name>Santander</Name>
</Company>
<Company id="117436" isSubject="N" refType="PRI">
<Name>Bankia</Name>
</Company>
</Companies>
doc3.xml
<Companies>
<Company id="12236" isSubject="N" refType="SEC">
<Name>Inter</Name>
</Company>
<Company id="134562" isSubject="N" refType="PRI">
<IsRestricted value="true"/>
<Name>Liber</Name>
</Company>
</Companies>
我的搜索需要排除文檔其中refType ='PRI & isSubject =」 Y」 & IsRestricted值=」 true'.So,在我的例子的結果應該包含doc1.xml
和doc2.xml
但不doc3.xml
。
我想下面的查詢會做的工作:
cts:search(/,
cts:not-query(
cts:element-query(xs:QName("Company"),cts:and-query((
cts:element-attribute-value-query(xs:QName("Company"),xs:QName("refType"),"PRI",(),0),
cts:element-attribute-value-query(xs:QName("Company"),xs:QName("isSubject"),"Y",(),0),
cts:element-attribute-value-query(xs:QName("IsRestricted"),xs:QName("value"),"true",(),0)
)))
)
)
,但它只是返回doc2.xml
。我已更新查詢:
cts:search(/,
cts:not-query(
cts:near-query((
cts:element-attribute-value-query(xs:QName("Company"),xs:QName("refType"),"PRI",(),0),
cts:element-attribute-value-query(xs:QName("Company"),xs:QName("isSubject"),"Y",(),0),
cts:element-attribute-value-query(xs:QName("IsRestricted"),xs:QName("value"),"true",(),0)
)))
)
似乎也不工作。僅返回doc2.xml
。