2016-08-25 100 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

我們是否可以選擇僅返回每個文檔中名稱元素第一次出現的值。現在在同一個文檔中,我們有名稱元素直接位於根元素之下,也是其他元素的子元素。它返回結果中的所有名稱值和相同的URI。 –

相關問題