Heim >Backend-Entwicklung >C++ >Wie zeige ich XML-Dateiattribute nur einmal rekursiv in einer TreeView an?
Effiziente Anzeige von XML-Dateiattributen in einer TreeView (einzelne Instanz)
Das rekursive Parsen von XML-Daten und deren Darstellung in einer TreeView ist eine häufige Programmieraufgabe. Eine zentrale Herausforderung besteht darin, sicherzustellen, dass XML-Knotenattribute unabhängig von der Anzahl der untergeordneten Knoten des Knotens nur einmal angezeigt werden. Der bereitgestellte Code litt zunächst unter einer redundanten Attributanzeige aufgrund verschachtelter Schleifen.
Die verbesserte Lösung behebt dieses Problem durch eine strategische Neupositionierung der Attributverarbeitungsschleife. Durch die Verarbeitung von Attributen vor der rekursiven Verarbeitung von untergeordneten Knoten garantieren wir, dass jedes Attribut nur einmal pro Knoten auftritt.
Hier ist der verfeinerte Code:
<code class="language-csharp">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(); }</code>
Dieser überarbeitete Code verwendet eine effizientere foreach
Schleife und eine klarere Zeichenfolgenformatierung. Die wichtigste Verbesserung ist die Platzierung der Attributverarbeitung, die eine einzige, genaue Anzeige der Attribute für jeden Knoten in der TreeView gewährleistet.
Das obige ist der detaillierte Inhalt vonWie zeige ich XML-Dateiattribute nur einmal rekursiv in einer TreeView an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!