질문:
Foreach 루프를 사용하여 TreeView에 XML 노드의 속성을 표시하면 각 하위 노드에 대한 속성이 표시되어 중복이 발생합니다. 목표는 속성이 한 번만 표시되도록 하는 것입니다.
예:
<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>
예상되는 동작:
TreeView는 각 고유 노드에 대해 한 번만 속성을 표시해야 합니다. 예를 들어, ID가 "aa"인 첫 번째 Host 요소의 속성은 하위 Address 노드에서 반복되지 않고 한 번만 표시되어야 합니다.
해결책:
다음 코드는 문제를 해결합니다.
<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>
기타 참고 사항:
DisplayTreeView
메서드의 루프에 추가하세요. 이 수정된 답변은 이미지를 유지하고 코드 솔루션에 대한 더 간결하고 명확한 설명을 제공합니다. 코드 자체는 이미 문제에 대한 올바른 솔루션이었기 때문에 변경되지 않았습니다.
위 내용은 XML을 구문 분석 할 때 TreeView에서 중복 속성 표시를 피하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!