|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.05.2012, 13:17 | #1 |
Регистрация: 18.05.2012
Сообщений: 3
|
Построить treeView из XML
Имеется такой XML:
<?xml version="1.0" encoding="utf-8"?> <root> <CL name="group1"> <CL name="1" /> <CL name="2" /> </CL> <CL name="group2"> <CL name="3" /> <CL name="4" /> </CL> <CL name="group3"> <CL name="5" /> <CL name="6" /> </CL> </root> Требуется в treeView построить дерево, где group1, group2, group3 - будут Parent, а содержимое атрибутов "name" их Chaild соответственно. Смог выводить только Родительские элементы, а дальше загвоздка((( OpenFileDialog OpenFile = new OpenFileDialog(); OpenFile.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"; if (OpenFile.ShowDialog() == System.Windows.Forms.DialogResult.O K) { path_xml_base = OpenFile.FileName; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path_xml_base); foreach (XmlNode item in xmlDoc.DocumentElement.SelectNodes( "/root/CL")) { treeView1.Nodes.Add((item as XmlNode).Attributes["name"].Value); } } Мучаюсь уже второй день, буду крайне благодарен тому кто напишет валидный код. Спасибо. |
18.05.2012, 13:21 | #2 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
Ну так а кто будет выводить дочерние, пушкин АС?
|
18.05.2012, 13:27 | #3 |
Регистрация: 18.05.2012
Сообщений: 3
|
Вот я и прошу помощи
|
18.05.2012, 13:32 | #4 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
Код за вас написать? а самому неохота?
Собственно у вас он почти весь есть. осталось малость - вытянуть дочерние, и вставить тем-же макаром. Дочерние находятся в родителях, что логично.. |
18.05.2012, 13:36 | #5 |
Регистрация: 18.05.2012
Сообщений: 3
|
Я все описал в первом посте. Именно вытянуть Дочек у меня и не получается, пришел за помощью на форум. Если не можешь, или не хочешь помочь, то просто пройди мимо, зачем флудить?
|
18.05.2012, 14:05 | #6 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
Надо просто посмотреть на свойства родительских нодов, 1 сек времени.
|
18.05.2012, 18:22 | #7 |
Пользователь
Регистрация: 15.10.2010
Сообщений: 65
|
Держи
PHP код:
|
18.05.2012, 19:07 | #8 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Вот молодец Nats, помог человеку. А то я уже выбирал время, чтобы прислать что-то подобное.
Осмелюсь добавить совет. Это частный случай, когда дерево имеет только 2 уровня. А для общего случая, когда степень вложенности ветвей заранее неизвестна, полезно сделать функцию для строительства ветви, которая вызывалась бы рекурсивно, что-то типа: private void BranchCollect(Node root) {...} В первый раз в качестве root в неё вводится корень дерева. Она в цикле присоединяет к root узлы первого уровня: Node newNode = new Node(); ... root.Nodes.Add(newNode); а если среди них встретился корень ответвления, то "отвлекается" на сборку этой ветви, вызывая саму себя: this.BranchCollect(newNode); // Рекурсия Здесь один из новых узлов выступает в роли корня. Пусть рекурсивный вызов происходит на каждом узле - просто если нет дочерних узлов, то ветвь не создаётся (а у Вас есть признак корня ветви, так что можно рекурсию сделать условной, но это ускорит сборку дерева только теоретически). И так далее, по всему дереву, сколько бы не было ветвей. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Построение TreeView из XML | maximumtf2 | Общие вопросы Delphi | 8 | 11.04.2012 00:30 |
TreeView сохранить в xml использую linq | iukash | C# (си шарп) | 3 | 24.07.2011 16:45 |
Проблема при загрузке файла XML в TreeView | artemavd | Общие вопросы Delphi | 1 | 20.06.2010 15:39 |
Добавление узлов в XML в Delphi, исользуя Treeview | Анастасия999 | Помощь студентам | 0 | 08.05.2010 10:05 |
вывод xml данных из TreeView в webbrowser | Dr.XxX | Общие вопросы Delphi | 1 | 10.10.2008 12:06 |