У меня есть следующая проблема, которую я не могу решить. Я пытаюсь создать представление в виде дерева на основе данных, содержащихся в следующем xml:
<folder id = "1" name = "folder1" />
<folder id = "2" name = "folder2" />
<folder id = "3" name = "folder3" />
<folder id = "4" name = "folder4" />
<folder id = "5" name = "folder5" />
<folder id = "6" name = "folder6" parent_id = "2"/>
<folder id = "7" name = "folder7" parent_id = "3"/>
<folder id = "8" name = "folder8" parent_id = "6"/>
<folder id = "9" name = "folder9" parent_id = "5"/>
код, который я использовал, был:
public void Folder()
{
XmlDocument dom = new XmlDocument();
XmlNodeList xmlnode;
dom.Load(xmlPath);
xmlnode = dom.GetElementsByTagName("folder");
string FolderName;
int? ParentFolder;
int FolderID;
string _subnode;
treeView2.Nodes.Clear();
foreach(XmlNode node in xmlnode)
{
FolderName = GetAttributeText(node, "name");
FolderID = Int32.Parse(GetAttributeText(node,"id"));
ParentFolder = ParseNullableInt(GetAttributeText(node, "parent_id"));
TreeNode subnode = new TreeNode(FolderName);
TreeNode treeNode = new TreeNode(FolderName);
if (ParentFolder.HasValue)
{
treeView2.Nodes[(int)ParentFolder].Nodes.Add("Cartelle", FolderName);
}
else
{
treeView2.Nodes.Add(treeNode);
}
проблема в том, что если ребенок - дитя узла, я ошибаюсь и не рискую создать ребенка-ребенка.





Я часто рекомендую следующий рекурсивный метод: stackoverflow.com/questions/28976601/…