Salve io ho questo codice per leggere un file xml in un treeview.
codice:
private void ReadXml(string filename)
{
try
{
XmlDocument dom = new XmlDocument();
dom.Load(Application.StartupPath + "\\" + filename + ".xml");
tv_Main.Nodes.Clear();
tv_Main.Nodes.Add(new TreeNode(dom.DocumentElement.Name));
TreeNode tNode = new TreeNode();
tNode = tv_Main.Nodes[0];
AddNode(dom.DocumentElement, tNode);
}
catch (XmlException xmlEx)
{
MessageBox.Show(xmlEx.Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
{
XmlNode xNode;
TreeNode tNode;
XmlNodeList nodeList;
int i;
if (inXmlNode.HasChildNodes)
{
nodeList = inXmlNode.ChildNodes;
for (i = 0; i <= nodeList.Count - 1; i++)
{
xNode = inXmlNode.ChildNodes[i];
inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
tNode = inTreeNode.Nodes[i];
AddNode(xNode, tNode);
}
}
else
{
inTreeNode.Text = (inXmlNode.OuterXml).Trim();
}
}
Questo è il file xml:
codice:
<?xml version="1.0" encoding="utf-8"?>
<Prova>
<Corridoio name="Corridoio">
</Corridoio>
<Stanza name ="Stanza">
</Stanza>
<Entrata name ="Entrata">
<Preset name="p1">
</Preset>
<Pippo name="p2">
</Pippo>
</Entrata>
</Prova>
Io voglio che il treeview venga caricato con la successione padre figlio ma con il testo che è all'interno di name.
Grazie