Вывод 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:25. |