在 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中文网其他相关文章!