1

以下の Xquery を使用した後、出力が正しく取得されます。

let $element :="Name"
let $value := "Antony"
let $op :=  cts:search(//root, cts:element-value-query( xs:QName($element),$value))
return $op

しかし、変数で「ルート」値を使用しているときにエラーが発生します。他に選択肢があれば教えてください。

let $element := "Name"
let $value := "Antony"
let $root := "root"
let $op := cts:search(//$root, cts:element-value-query( xs:QName($element),$value))
return $op 

エラー :

[1.0-ml] XDMP-UNSEARCHABLE: cts:search(fn:collection()/descendant-or-self::node()/"root", cts:element-value-query(fn:QName("","Name"), "Antony", ("lang=en"), 1)) -- Expression is unsearchable

Stack Trace
At line 16 column 23:

In xdmp:eval("(:&#10; let $uri := cts:element-value-query( xs:QName(&quot;file...", (), <options xmlns="xdmp:eval"><database>8922589838473153050</database><root>/marklogic/poc/</r...</options>)

$element := "Name"
$value := "Antony"
$root := "root"

14. let $value := "Antony"
15. let $root :="root"
16. **let $op := cts:search(//$root, cts:element-value-query( xs:QName($element),$value))**
17. return $op 

サンプルデータ:

<root processtype="sample">
  <title series="hk">
    <Name>Antony</Name>
  </title>
</root>
4

1 に答える 1

1

そのように値を使用することはできません$root..値を一致させる$rootには、次のことを行う必要があります//root[. = $root]

let $element :="Name"
let $value := "Antony"
let $root :="root"
let $op :=  cts:search(//root[. = $root], cts:element-value-query( xs:QName($element),$value))
return $op 
于 2016-03-15T07:07:22.337 に答える