bout de code pour charger une arborescence pliante/dépliante representant du contenu XML
Voici un bout de code que je partage avec vous, une fonction qui à partir d'un document xml (xmldocument) charge une treeview correspondant:
la fonction principale de chargement du xmldocument
private void loadTreeview(XmlDocument dom)
{
try
{
//ici se trouve notre objet treeview
treeViewConfig.Nodes.Clear();
treeViewConfig.Nodes.Add(new TreeNode(dom.DocumentElement.Name));
TreeNode tNode = new TreeNode();
tNode = treeViewConfig.Nodes[0];
mytools.AddNode(dom.DocumentElement, tNode);
treeViewConfig.ExpandAll();
}
catch (Exception ex)
{
}
}
la fonction AddNode que voici qui est utilisée de façon récursive par la première méthode
public static void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
{
XmlNode xNode;
TreeNode tNode;
XmlNodeList nodeList;
int i;
// Loop through the XML nodes until the leaf is reached.
// Add the nodes to the TreeView during the looping process.
if (inXmlNode.HasChildNodes)
{
nodeList = inXmlNode.ChildNodes;
for (i = 0; i <= nodeList.Count - 1; i++)
{
xNode = inXmlNode.ChildNodes[i];
inTreeNode.ChildNodes.Add(GetTreeNodeValue(xNode));
tNode = inTreeNode.ChildNodes[i];
tNode.NavigateUrl = "javascript:void(0)";
AddNode(xNode, tNode);
}
}
else
{
inTreeNode.Text = GetTreeNodeValue(inXmlNode).Text;
}
}