Maison > développement back-end > C++ > Comment afficher récursivement les attributs de fichiers XML dans un TreeView une seule fois?

Comment afficher récursivement les attributs de fichiers XML dans un TreeView une seule fois?

Susan Sarandon
Libérer: 2025-01-27 11:41:10
original
612 Les gens l'ont consulté

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

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();
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal