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