首頁 > 後端開發 > C++ > 如何僅在樹視圖中遞歸顯示XML文件屬性?

如何僅在樹視圖中遞歸顯示XML文件屬性?

Susan Sarandon
發布: 2025-01-27 11:41:10
原創
588 人瀏覽過

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板