I am using an xml file to actually load the data to a tree view.
My xml file content is as follow:
BASIC
RF1
Under ABCD10, PC1, I would like to add in BASIC, BASIC1 and BASIC2 as the child for ABCD10, PC1.
But when I add in BASIC1 under BASIC, and run the program, the treeview just shown "BASIC BASIC1" instead of create a branches with BASIC and BASIC1. Can anyone help whether it is xml format problem or the program coding ?
The program coding is as follow:
using
System;using
System.Collections.Generic;using
System.ComponentModel;using
System.Data;using
System.Drawing;using
System.Text;using
System.Windows.Forms;using
System.Xml;namespace
EPC_Control_Station{
public partial class Form1 : Form{
public Form1(){
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e){
try{
// SECTION 1. Create a DOM Document and load the XML data into it.XmlDocument dom =
new XmlDocument();dom.Load(
"D:\\EPC\\abc.xml"); // SECTION 2. Initialize the TreeView control.treeView1.Nodes.Clear();
treeView1.Nodes.Add(
new TreeNode(dom.DocumentElement.Name));TreeNode tNode =
new TreeNode();tNode = treeView1.Nodes[0];
// SECTION 3. Populate the TreeView with the DOM nodes.AddNode(dom.DocumentElement, tNode);
treeView1.ExpandAll();
}
catch (XmlException xmlEx){
MessageBox.Show(xmlEx.Message);
}
catch (Exception ex){
MessageBox.Show(ex.Message);
}
}
private void button1_Click(object sender, EventArgs e){
}
private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode){
XmlNode xNode;
TreeNode tNode;
XmlNodeList nodeList;
int i; // Loop through the XML nodes until the leaf is reached. // Add the nodes to the TreeView during the looping process. if (inXmlNode.HasChildNodes){
nodeList = inXmlNode.ChildNodes;
for(i = 0; i<=nodeList.Count - 1; i++){
xNode = inXmlNode.ChildNodes[i];
inTreeNode.Nodes.Add(
new TreeNode(xNode.Name));tNode = inTreeNode.Nodes[i];
AddNode(xNode, tNode);
}
}
else{
// Here you need to pull the data from the XmlNode based on the // type of node, whether attribute values are required, and so forth.inTreeNode.Text = (inXmlNode.OuterXml).Trim();
}
}
}
}
Replies
Know the answer? Post it — somebody with the same question will find it here.