質問:
foreachサイクルを使用して属性を含むXMLファイルを解析する場合、属性が複数回表示されます。コードを変更して1つの属性のみを表示する方法は?
解決策:TreeViewコントロールに1つの属性のみを表示するだけです:
説明:<code class="language-csharp">private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode) { if (inXmlNode.HasChildNodes) { // 检查 XmlNode 是否具有属性 string attributes = ""; foreach (XmlAttribute att in inXmlNode.Attributes) { attributes += " " + att.Name + ": " + att.Value; } if (!string.IsNullOrEmpty(attributes)) { inTreeNode.Text += attributes; } foreach (XmlNode node in inXmlNode.ChildNodes) { TreeNode newNode = inTreeNode.Nodes.Add(node.Name); AddNode(node, newNode); } } }</code>更新されたコードは、サブノードサイクルの外側に属性ループを移動します。これにより、親ノードの下に複数のサブノードがある場合でも、属性が1回しか表示されないことが保証されます。 改良されたコードは、文字列変数を使用してすべての属性を蓄積し、繰り返し追加しないように
に追加します。
以上がXMLをC#TreeViewに解析するときに、属性表示の重複を避ける方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。