Affichage efficace des attributs de fichiers XML dans un TreeView (instance unique)
Analyse récursivement des données XML et les présenter dans une viewView est une tâche de programmation fréquente. Un défi clé consiste à garantir que les attributs de nœud XML ne sont affichés qu'une seule fois, quel que soit le nombre d'enfants du nœud. Le code fourni a initialement souffert d'un affichage d'attribut redondant dû à des boucles imbriquées.
La solution améliorée aborde cela en repositionnant stratégiquement la boucle de traitement d'attribut. En traitement des attributs Avant Traitement récursivement des nœuds enfants, nous garantissons l'apparence de chaque attribut une seule fois par nœud.
Voici le code raffiné:
private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode) { // Display attributes only once per node if (inXmlNode.Attributes != null && inXmlNode.Attributes.Count > 0) { foreach (XmlAttribute att in inXmlNode.Attributes) { inTreeNode.Text += $" {att.Name}: {att.Value}"; // More concise string formatting } } // Recursive processing of child nodes if (inXmlNode.HasChildNodes) { foreach (XmlNode xNode in inXmlNode.ChildNodes) // More efficient foreach loop { TreeNode tNode = inTreeNode.Nodes.Add(new TreeNode(xNode.Name)); AddNode(xNode, tNode); } } else { inTreeNode.Text = inXmlNode.OuterXml.Trim(); // Handle leaf nodes } treeView1.ExpandAll(); }
Ce code révisé utilise une boucle foreach
plus efficace et un formatage de chaîne plus claire. L'amélioration clé est le placement du traitement des attributs, garantissant un seul affichage précis des attributs pour chaque nœud dans TreeView.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!