Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mengelakkan paparan atribut pendua apabila parsing XML menjadi C# Treeview?

Bagaimana untuk mengelakkan paparan atribut pendua apabila parsing XML menjadi C# Treeview?

Barbara Streisand
Barbara Streisandasal
2025-01-27 11:51:09304semak imbas

How to Avoid Duplicate Attribute Display When Parsing XML into a C# TreeView?

Cara menghuraikan fail XML yang mengandungi atribut ke dalam kawalan TreeView dalam C#

Soalan:

Apabila menggunakan gelung foreach untuk menghuraikan fail XML yang mengandungi atribut, atribut dipaparkan beberapa kali. Bagaimanakah saya boleh mengubah suai kod untuk menunjukkan harta sekali sahaja?

Penyelesaian:

Untuk memaparkan sifat sekali sahaja dalam kawalan TreeView:

<code class="language-csharp">private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
{
    if (inXmlNode.HasChildNodes)
    {
        // 检查 XmlNode 是否具有属性
        string attributes = "";
        foreach (XmlAttribute att in inXmlNode.Attributes)
        {
            attributes += " " + att.Name + ": " + att.Value;
        }
        if (!string.IsNullOrEmpty(attributes))
        {
            inTreeNode.Text += attributes;
        }


        foreach (XmlNode node in inXmlNode.ChildNodes)
        {
            TreeNode newNode = inTreeNode.Nodes.Add(node.Name);
            AddNode(node, newNode);
        }
    }
}</code>

Arahan:

Kod yang dikemas kini mengalihkan gelung atribut ke luar gelung nod anak. Ini memastikan bahawa atribut hanya dipaparkan sekali, walaupun terdapat berbilang nod anak di bawah nod induk. Kod yang dipertingkatkan menggunakan pembolehubah rentetan attributes untuk mengumpul semua atribut, dan kemudian menambahkannya pada inTreeNode.Text sekali gus, mengelakkan penambahan berulang.

Atas ialah kandungan terperinci Bagaimana untuk mengelakkan paparan atribut pendua apabila parsing XML menjadi C# Treeview?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn