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