Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xquery marklogic 8-如何按集合搜索_Xquery_Marklogic_Marklogic 8 - Fatal编程技术网

Xquery marklogic 8-如何按集合搜索

Xquery marklogic 8-如何按集合搜索,xquery,marklogic,marklogic-8,Xquery,Marklogic,Marklogic 8,我在我的查询控制台中尝试了下面提到的Xquery,但我需要从集合中搜索数据 let $value1 := "antony" let $value2 := "cse" for $uri1 in cts:uris((),(), ( cts:element-query(xs:QName("P"), cts:and-query(( cts:element-attribute-value-query(xs:QName("P"),xs:QName("name"),

我在我的查询控制台中尝试了下面提到的Xquery,但我需要从集合中搜索数据

let $value1 := "antony"
let $value2 := "cse"
for $uri1 in cts:uris((),(), (  
    cts:element-query(xs:QName("P"),
      cts:and-query((
          cts:element-attribute-value-query(xs:QName("P"),xs:QName("name"),$value1),
          cts:element-attribute-value-query(xs:QName("P"),xs:QName("value"),$value2)
      ))
    )
))
let $xml := doc($uri1)
return $xml//PS/P [@name eq "volume"]/@value

请建议我如何在上面提到的XQuery中添加集合?

首先,我想说,既然您最终想要的是文档而不是URI,直接使用cts:search会更有效。如果您想避免过滤成本,可以添加“未过滤”选项,例如:

let $value1  := "antony"
let $value2 := "cse"
return
cts:search( doc(), 
  cts:element-query(xs:QName("P"),
    cts:and-query((
      cts:element-attribute-value-query(xs:QName("P"),xs:QName("name"),$value1),
      cts:element-attribute-value-query(xs:QName("P"),xs:QName("value"),$value2)
    ))
  ), "unfiltered"
)//PS/P[@name eq "volume"]/@value
或者,由于您只关心/PS/p元素:

cts:search( doc()//PS/P, 
  cts:element-query(xs:QName("P"),
    cts:and-query((
      cts:element-attribute-value-query(xs:QName("P"),xs:QName("name"),"antony"),
      cts:element-attribute-value-query(xs:QName("P"),xs:QName("value"),"cse")
    ))
  ), "unfiltered"
)[@name eq "volume"]/@value
要在集合中搜索,请将doc()替换为集合(“yourcollection”):


首先,我想说,因为您最终想要的是文档而不是URI,所以直接使用cts:search会更有效。如果您想避免过滤成本,可以添加“未过滤”选项,例如:

let $value1  := "antony"
let $value2 := "cse"
return
cts:search( doc(), 
  cts:element-query(xs:QName("P"),
    cts:and-query((
      cts:element-attribute-value-query(xs:QName("P"),xs:QName("name"),$value1),
      cts:element-attribute-value-query(xs:QName("P"),xs:QName("value"),$value2)
    ))
  ), "unfiltered"
)//PS/P[@name eq "volume"]/@value
或者,由于您只关心/PS/p元素:

cts:search( doc()//PS/P, 
  cts:element-query(xs:QName("P"),
    cts:and-query((
      cts:element-attribute-value-query(xs:QName("P"),xs:QName("name"),"antony"),
      cts:element-attribute-value-query(xs:QName("P"),xs:QName("value"),"cse")
    ))
  ), "unfiltered"
)[@name eq "volume"]/@value
要在集合中搜索,请将doc()替换为集合(“yourcollection”):