2016-03-14 5 views
1

После использования указанного ниже Xquery я получаю вывод правильно.Как корневой элемент динамически предоставлять в cts: поиск с использованием Marklogic

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> 

ответ

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 
+0

Спасибо за ваш ответ, но я попробовал этот запрос, только «ваш запрос возвратил пустую последовательность», так что вы можете помочь лучше. – Antony

+0

Можете ли вы добавить образец своих данных, чтобы увидеть, были ли пропуски? –

+0

Я добавил образец XML ниже для вашего сведения. <Корень processtype = «образец»> <название серии = «кк»> Энтони Antony

Смежные вопросы