2016-08-25 2 views
1

要素値に基づいて検索を実行しようとしています。これにより、要素値と、その要素値が一致する文書URIが返されます。私は要素の値をよく返す以下のコードを書いています。ドキュメントURIを取得できません。両方を取得する方法。要素検索後の文書URIの返信

xquery version "1.0-ml"; 
<results>{ 
let $x := cts:element-values(fn:QName("http://example.com/dataset","name"),(), ("frequency-order","document"), cts:query(
    <and-query xmlns="http://marklogic.com/cts"> 
    <word-query> 
     <text>paramedical</text> 
    </word-query> 
    <directory-query> 
     <uri>/dataset/</uri> 
    </directory-query> 
    </and-query> 
)) 
for $dataset in $x 
return 
(
<result> 
    <name>{$dataset}</name> 
    <reference>{cts:uris($dataset)}</reference> 
</result> 
) 
}</results> 

答えて

2

これを試してみてください:

for $tuple in cts:value-tuples(
    (
    cts:element-reference(fn:QName("http://example.com/dataset","name")), 
    cts:uri-reference() 
), 
    ("frequency-order","document"), 
    $query 
) 
return $tuple 

あなたはURIの辞書がオンになって必要があります。

+0

私のためにこの作品。迅速な対応をありがとう。 –

+0

これはあなたの質問に答えるので[それを「受け入れた」とマークしてください](http://stackoverflow.com/help/accepted-answer)。 –

+0

各文書内のname要素の最初の出現の値のみを返すオプションがありますか。今度は同じ文書で、名前要素がルート要素の直下にあり、他の要素の子要素としてもあります。結果にはすべての名前の値と同じURIが返されます。 –

関連する問題