首页 >后端开发 >C++ >将XML解析到C#TreeView时,如何避免重复属性显示?

将XML解析到C#TreeView时,如何避免重复属性显示?

Barbara Streisand
Barbara Streisand原创
2025-01-27 11:51:09323浏览

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

在 C# 中将包含属性的 XML 文件解析到 TreeView 控件的方法

问题:

使用 foreach 循环解析包含属性的 XML 文件时,属性会显示多次。如何修改代码以仅显示一次属性?

解决方案:

要在 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>

说明:

更新后的代码将属性循环移到子节点循环之外。这样可以确保即使父节点下有多个子节点,属性也只显示一次。 改进后的代码使用字符串变量 attributes 来累积所有属性,然后一次性添加到 inTreeNode.Text 中,避免了重复添加。

以上是将XML解析到C#TreeView时,如何避免重复属性显示?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn