首页 > 后端开发 > C++ > 如何仅在树视图中递归显示XML文件属性?

如何仅在树视图中递归显示XML文件属性?

Susan Sarandon
发布: 2025-01-27 11:41:10
原创
525 人浏览过

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

在 TreeView 中高效显示 XML 文件属性(单实例)

递归解析 XML 数据并将其呈现在 TreeView 中是一项常见的编程任务。 一个关键的挑战是确保 XML 节点属性仅显示一次,而不管节点的子节点数是多少。 提供的代码最初由于嵌套循环而出现冗余属性显示。

改进的解决方案通过战略性地重新定位属性处理循环来解决这个问题。 通过在递归处理子节点之前处理属性,我们保证每个属性每个节点仅出现一次。

这是精炼后的代码:

<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>
登录后复制

此修改后的代码使用了更高效的 foreach 循环和更清晰的字符串格式。 关键的改进是属性处理的放置,确保 TreeView 中每个节点的属性的单一、准确显示。

以上是如何仅在树视图中递归显示XML文件属性?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板