Memaparkan Atribut Fail XML dengan Cekap dalam TreeView (Satu Contoh)
Menghuraikan data XML secara rekursif dan membentangkannya dalam TreeView ialah tugas pengaturcaraan yang kerap. Cabaran utama ialah memastikan bahawa atribut nod XML dipaparkan sekali sahaja, tanpa mengira kiraan anak nod. Kod yang disediakan pada mulanya mengalami paparan atribut berlebihan disebabkan gelung bersarang.
Penyelesaian yang dipertingkatkan menangani perkara ini dengan meletakkan semula gelung pemprosesan atribut secara strategik. Dengan memproses atribut sebelum memproses nod anak secara rekursif, kami menjamin penampilan setiap atribut hanya sekali bagi setiap nod.
Berikut ialah kod yang diperhalusi:
<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>
Kod yang disemak ini menggunakan gelung foreach
yang lebih cekap dan pemformatan rentetan yang lebih jelas. Penambahbaikan utama ialah penempatan pemprosesan atribut, memastikan paparan tunggal atribut yang tepat untuk setiap nod dalam TreeView.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Atribut Fail XML secara Rekursif dalam TreeView Sekali sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!