Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengelakkan Paparan Atribut Pendua dalam TreeView Apabila Menghuraikan XML?
Soalan:
Apabila menggunakan gelung foreach untuk memaparkan atribut nod XML dalam TreeView, atribut dipaparkan untuk setiap nod anak, mengakibatkan pendua. Matlamatnya adalah untuk memastikan bahawa harta itu hanya ditunjukkan sekali.
Contoh:
<code class="language-xml"><dataconfiguration><hosts><site name="ss"><host id="aa"><address host="www.www.com"></address> </host><host id="ee"><address host="www.www.com"></address> </host></site></hosts></dataconfiguration></code>
Tingkah laku yang dijangka:
TreeView hanya perlu memaparkan sifat sekali untuk setiap nod unik. Sebagai contoh, atribut elemen Hos pertama dengan ID "aa" hendaklah dipaparkan sekali sahaja, dan bukannya diulang dalam nod Alamat anaknya.
Penyelesaian:
Kod berikut menyelesaikan masalah:
<code class="language-csharp">private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode) { XmlNode xNode; TreeNode tNode; XmlNodeList nodeList; int i; // 循环遍历 XML 节点,直到到达叶子节点。 // 在循环过程中将节点添加到 TreeView。 if (inXmlNode.HasChildNodes) { // 检查 XmlNode 是否具有属性 if (inXmlNode.Attributes.Count != 0) { foreach (XmlAttribute att in inXmlNode.Attributes) { inTreeNode.Text += " " + att.Name + ": " + att.Value; } } nodeList = inXmlNode.ChildNodes; for (i = 0; i < nodeList.Count; i++) { xNode = nodeList.Item(i); tNode = new TreeNode(xNode.Name); inTreeNode.Nodes.Add(tNode); AddNode(xNode, tNode); } } }</code>
Nota lain:
DisplayTreeView
. Jawapan yang disemak ini mengekalkan imej dan memberikan penjelasan yang lebih ringkas dan jelas tentang penyelesaian kod itu sendiri tidak berubah, kerana ia sudah menjadi penyelesaian yang betul untuk masalah itu.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Paparan Atribut Pendua dalam TreeView Apabila Menghuraikan XML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!