Выбрать отдельные значения в соответствии с дочерним узлом в XQuery

Допустим, у меня есть следующий XML:

<info>
    <channel>
        <A>
          <X>
            <title>title1</title>
          </X>
          <Y value="20"/>
        </A>
    </channel>
    <channel>
        <A>
          <X>
            <title>title1</title>
          </X>
          <Y value="20"/>
        </A>
        <A>
          <X>
            <title>title2</title>
          </X>
          <Y value="20"/>
        </A>
    </channel>
</info>

и следующий XQuery

{
for $A in doc('test.xml')//A
let $TITLE := $A/X/title
where string($A/Y/value) > 20
return
  string($TITLE)
}

, который, конечно, выводит:

title1
title1
title2

Как Могу ли я использовать разные значения для удаления дубликатов? Интересно, потому что для по существу дает мне только один элемент на итерацию, и я не могу вызвать разные значения на $ A . Или есть какой-нибудь другой способ удалить повторяющийся вывод?

Проблема в том, что мне нужно обратиться к другому узлу, поэтому в основном вызов отличных значений (doc ...) не работает, поскольку он не возвращает узлы.

5
задан slhck 14 March 2011 в 08:59
поделиться