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查询,这样我就可以在本地变量本身中搜索元素。

您想用这个变量做什么?

因为cts:search用于从数据库返回文档
您已经有了"文档",现在您只需要文档中的一些节点,这样您就可以使用xpath来获取您想要的值——它是您的本地变量。

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

最新更新