Цитата:
Сообщение от
belugin
[XPP]
TreeNodeTraverser traverser = new TreeNodeTraverser(TreeNode::findNode('\Menu Items'));
собственно вопрос у меня и родился после того, как заглянул в TreeNodeTraverser.
мне кажется, что он не оптимально написан.
В принципе понятно что делают - рекурсивный спуск вытягивают в одну итерацию.
Но за счет какого-то левого встроенного класса TreeNodeIterator (все еще итератор!)
и за счет кучи левого кода на X++.
Но с одной стороны, рекурсивный спуск по AOT вряд ли будет иметь большую глубину (разве что в дизайнах форм/отчетов), поэтому вряд ли стоит бояться переполнения при обходе AOT. поэтому скорее всего своя рекурсивная функия как здесь
вывод дерева из АОТа будет пооптимальнее
А с другой стороны, есть просто псевдотаблица UtelElements, обход которой дает обычный одноуровневый цикл.
Отсюда собственно и вопрос на обсуждение и для потрындеть:
Цитата:
Сообщение от
mazzy
Как лучше сделать обход дерева AOT?
Рекурсивный TreeNode?
Цикл по UtilElement?
Еще как-то?
За перпендикулярный взгляд "работать с XML" отдельное спасибо.