Вывод xml в виде иерархического дерева
Доброго времени суток, форумчане! Имеется xml вида:
<history> <auditChangeList> <row sTime='21.05.2017 12:57:01' autor='07A9C442-F6D4-4C4E-898D-1AD948F9BCC7'> <changedItem propertyName='каталог №1'> <oldValue>old</oldValue> <newValue>new</newValue> <propertyType>int</propertyType> </changedItem> <changedItem propertyName='каталог №11'> <oldValue>old</oldValue> <newValue>new</newValue> <propertyType>int</propertyType> </changedItem> </row> <row sTime='20.05.2017' autor='08A9C442-F6D4-4C4E-898D-1AD948F9BCC7'> <changedItem propertyName='каталог №2'> <oldValue>old</oldValue> <newValue>new</newValue> <propertyType>string</propertyType> </changedItem> <changedItem propertyName='каталог №22'> <oldValue>old</oldValue> <newValue>new</newValue> <propertyType>int</propertyType> </changedItem> </row> </auditChangeList> </history> необходимо вывести её в виде иерархического справочника, смотрю в сторону kendoTreeLista, опыт по созданию kendoTreeLista есть, но там для построения иерархии необходимы поля id, parentId, у меня их нет, а если добавить неясно куда, буду рад любым советам |
Я имел опыт с кендо... Если дерево большое (больше 500 узлов), то рекомендую отказаться от их реализации, очень тормозит браузер (как на десктопах так и на мобильных платформах), рендеринг может падать до 5-10 fps.
Ну а если производительность не на первом месте, то просто добавьте поля id и parentId в ваш xml, а потом передавайте его в кендо. |
Цитата:
|
В идеале надо сделать так:
- на основе xml создать массив объектов, где каждый объект является нодой(узлом) - к каждой полученному объекту надо добавить свойства id и parentId (для корневого узла parentId: null) Я бы рекурсивно прошелся по xml документу, в роли id я бы сделал примитивный счетчик (index++), а по мере погружения в дочерние узлы передавал в эту рекурсивную функцию этот index в роли parentId. ps: этот вариант более приемлемый для кендо так как ему не придется самостоятельно парсить xml документ и более приемлемый вообще, потому что вам в любом случаи надо пройтись по всему xml документу чтобы добавить необходимые свойства. ps1: другое дело, если обновлять это "дерево" нужно часто, опять упретесь в потерю продуктивности... |
Часовой пояс GMT +3, время: 20:59. |