Csharp/CSharp Tutorial/XML/Xml Tree
Display XML Tree
<source lang="csharp">using System; using System.Collections.Generic; using System.Windows.Forms; using System.Xml; using System.IO;
public partial class XmlTreeDisplay : Form {
public XmlTreeDisplay() { InitializeComponent(); } private void XmlTreeDisplay_Load(object sender, EventArgs e) { txtXmlFile.Text = Path.rubine(Application.StartupPath, @"test.xml"); } private void cmdLoad_Click(object sender, System.EventArgs e) { treeXml.Nodes.Clear(); XmlDocument doc = new XmlDocument(); try { doc.Load(txtXmlFile.Text); } catch (Exception err) { MessageBox.Show(err.Message); return; } ConvertXmlNodeToTreeNode(doc, treeXml.Nodes); treeXml.Nodes[0].ExpandAll(); } private void ConvertXmlNodeToTreeNode(XmlNode xmlNode, TreeNodeCollection treeNodes) { // Add a TreeNode node that represents this XmlNode. TreeNode newTreeNode = treeNodes.Add(xmlNode.Name); // Customize the TreeNode text based on the XmlNode // type and content. switch (xmlNode.NodeType) { case XmlNodeType.ProcessingInstruction: case XmlNodeType.XmlDeclaration: newTreeNode.Text = "<?" + xmlNode.Name + " " + xmlNode.Value + "?>"; break; case XmlNodeType.Element: newTreeNode.Text = "<" + xmlNode.Name + ">"; break; case XmlNodeType.Attribute: newTreeNode.Text = "ATTRIBUTE: " + xmlNode.Name; break; case XmlNodeType.Text: case XmlNodeType.CDATA: newTreeNode.Text = xmlNode.Value; break; case XmlNodeType.rument: newTreeNode.Text = ""; break; } if (xmlNode.Attributes != null) { foreach (XmlAttribute attribute in xmlNode.Attributes) { ConvertXmlNodeToTreeNode(attribute, newTreeNode.Nodes); } } foreach (XmlNode childNode in xmlNode.ChildNodes) { ConvertXmlNodeToTreeNode(childNode, newTreeNode.Nodes); } }
} partial class XmlTreeDisplay {
private System.ruponentModel.IContainer components = null; protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); this.cmdLoad = new System.Windows.Forms.Button(); this.txtXmlFile = new System.Windows.Forms.TextBox(); this.treeXml = new System.Windows.Forms.TreeView(); this.SuspendLayout(); // // label1 // this.label1.Location = new System.Drawing.Point(9, 11); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(28, 16); this.label1.TabIndex = 7; this.label1.Text = "File:"; // // cmdLoad // this.cmdLoad.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.cmdLoad.Location = new System.Drawing.Point(514, 5); this.cmdLoad.Name = "cmdLoad"; this.cmdLoad.Size = new System.Drawing.Size(56, 24); this.cmdLoad.TabIndex = 6; this.cmdLoad.Text = "Load"; this.cmdLoad.Click += new System.EventHandler(this.cmdLoad_Click); // // txtXmlFile // this.txtXmlFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.txtXmlFile.Location = new System.Drawing.Point(41, 8); this.txtXmlFile.Name = "txtXmlFile"; this.txtXmlFile.Size = new System.Drawing.Size(468, 21); this.txtXmlFile.TabIndex = 5; // // treeXml // this.treeXml.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.treeXml.Location = new System.Drawing.Point(5, 37); this.treeXml.Name = "treeXml"; this.treeXml.Size = new System.Drawing.Size(566, 264); this.treeXml.TabIndex = 4; // // XmlTreeDisplay // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(583, 314); this.Controls.Add(this.label1); this.Controls.Add(this.cmdLoad); this.Controls.Add(this.txtXmlFile); this.Controls.Add(this.treeXml); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Name = "XmlTreeDisplay"; this.Text = "XmlTreeDisplay"; this.Load += new System.EventHandler(this.XmlTreeDisplay_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label label1; private System.Windows.Forms.Button cmdLoad; private System.Windows.Forms.TextBox txtXmlFile; private System.Windows.Forms.TreeView treeXml;
} static class Program {
/// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new XmlTreeDisplay()); }
}</source>
Load Xml to TreeView
<source lang="csharp">using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Xml;
public class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load("employees.xml"); TreeNode root=new TreeNode(doc.DocumentElement.Name); treeView1.Nodes.Add(root); foreach (XmlNode node in doc.DocumentElement.ChildNodes) { TreeNode employee = new TreeNode("Employee ID :" + node.Attributes["employeeid"].Value); root.Nodes.Add(employee); if (node.HasChildNodes) { foreach (XmlNode childnode in node.ChildNodes) { TreeNode n2 = new TreeNode(childnode.Name + " : "+ childnode.InnerText); employee.Nodes.Add(n2); } } } } private void InitializeComponent() { this.treeView1 = new System.Windows.Forms.TreeView(); this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // treeView1 // this.treeView1.Dock = System.Windows.Forms.DockStyle.Top; this.treeView1.Location = new System.Drawing.Point(0, 0); this.treeView1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.treeView1.Name = "treeView1"; this.treeView1.Size = new System.Drawing.Size(389, 304); this.treeView1.TabIndex = 0; // // button1 // this.button1.Location = new System.Drawing.Point(136, 320); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(104, 32); this.button1.TabIndex = 1; this.button1.Text = "Load Tree"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(389, 362); this.Controls.Add(this.button1); this.Controls.Add(this.treeView1); this.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); }
private System.Windows.Forms.TreeView treeView1; private System.Windows.Forms.Button button1; [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }</source>