2015-03-31 78 views
0

我正在將文檔節點存儲在本地變量中,並希望從本地變量中搜索子節點。考慮父項爲:MarkLogic:從本地變量中搜索父節點中的子節點

let $parent :=<tempdoc> 
       <identifier> 
        <a>1</a> 
        <b>2</b> 
       </identifier> 
       </tempdoc> 

我不想插入父節點,因爲它是在代碼中間創建的臨時節點。如果我將父項作爲文檔插入,我將執行以下操作,即從已插入的文檔中搜索節點。

let $doc := cts:search(//*:identifier, 
cts:directory-query(("/tempfiles/parentdocs/"),"1")) 

其中/tempfiles/parentdocs/是保存文檔的目錄。

但是如果文檔存儲在本地變量而不是數據庫呢?應該替換什麼而不是cts:directory-query,以便我可以在本地變量本身中搜索元素。

回答

2

你想用變量做什麼?

因爲cts:search用於從數據庫返回文檔。
現在你已經擁有了「文檔」,你只需要文檔中的一些節點,這樣你就可以使用xpath獲取你想要的值作爲本地變量。

let $parent :=<tempdoc> 
      <identifier> 
      <a>1</a> 
      <b>2</b> 
      </identifier> 
      </tempdoc> 
return $parent/identifier/element()