Переписал в более читабельный вид, вынес все в отдельные процедуры добавил пару коментариев по коду. Можно разобраться.
Ну все же пару коментариев:
1. Процедура
Procedure XmlToTreeView(const FileName:String); - принимает имя файла XML.
Данная процедура проверяет на валидность файл если его нет выходим, если же есть то сразу же добавляем в TreeView корневой узел с названием = Имени переданного файла. Даже если файл пустой он будет добавлен в TreeView , ведь читать его мы будем чуть позже.
2. В этой же процедуре мы читаем переданный нам файл при помощи XMLRead и передаем уже TXMLDocument по ссылке (для экономии времени на копировании, файл может быть большим). в процедуру
XmlToNode(XML,RootNode);
//Собственно начали работу.3. Данная процедура принимает TXMLDocument по ссылке и Корневой узел TreeView
именно в этот узел мы и будем добавлять все остальное, ведь этот узел связан именно с файлом, имя которого и передали в XmlToTreeView
для этого файла и был создан корневой узел в TreeView в пункте 1. И
именно с этим файлом связан TXMLDocument.
4. Войдя в процедуру XmlToNode мы проверяем валидность переданного XmlDocumenta если он Нил выходим. (произошла ошибка в парсере хмл).
5. Если все ОК. делаем вот это:
For I:=0 To XMLDoc.ChildNodes.Count-1 do //Пробегаем все узлы верхнего уровня Xml файла6. и каждый найденный узел передаем в XMLNodeToTreeNode(XMLDoc.ChildNodes.Item[I],RNode);
//тут работаем уже с конкретным узлом7.
XMLNodeToTreeNode - Рабочая лошадка. Она делает всю работу.
8. Она изночально пробегает все аттрибуты Узла (XML узла) и добавляет их как узел (Уже как узел TreeView). Имя узла TreeView имеет вид: 'Имя Аттрибута = Значение аттрибута'. Это видно на скрине.
9. Дальше:
for IDomNode:=0 to XMLNode.ChildNodes.Count-1 do //Пробегаем дочерние узлы XMLNode 10. В п 9. мы
рекурсивно вызываем процедуру XMLNodeToTreeNode.
10.1 UTF8Encode(XMLNode.Attributes.Item[Iatr].NodeName) и т.п. Для понимания русских букв... Далее по коду все прозрачно.
НУ Как более подробно я уже не знаю. Так что успехов.

У вас нет необходимых прав для просмотра вложений в этом сообщении.