2015-03-31 38 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()