Heim >Backend-Entwicklung >C++ >Wie zeige ich XML-Dateiattribute nur einmal rekursiv in einer TreeView an?

Wie zeige ich XML-Dateiattribute nur einmal rekursiv in einer TreeView an?

Susan Sarandon
Susan SarandonOriginal
2025-01-27 11:41:10544Durchsuche

How to Recursively Display XML File Attributes in a TreeView Only Once?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn