Я пытаюсь получить все различные начальные элементы /products/p:category/start
узлы большого файла. Я написал запрос, который приведен ниже. Это требует времени, чтобы получить результат. Я добавляю информацию о запросе и файл XML.Отличительные узлы, занимающие слишком много времени в BaseX (XQuery)
После нескольких минут работы я прекратил выполнение.
Запрос пытается получить все отдельные элементы запуска. Есть 3 элемента категории lac.
declare namespace functx = "http://www.functx.com";
declare namespace p="a:b:c";
declare function functx:is-node-in-sequence(
$node as node()? ,
$seq as node()*
) as xs:boolean {
some $nodeInSeq in $seq satisfies deep-equal($nodeInSeq,$node)
};
declare function functx:distinct-nodes(
$nodes as node()*
) as node()* {
for $seq in (1 to count($nodes))
return $nodes[$seq]
[not(functx:is-node-in-sequence(.,$nodes[position() < $seq]))]} ;
let $diff_starts := functx:distinct-nodes(/products/p:category/start)
return $diff_starts
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.