Mega Code Archive

 
Categories / C# Tutorial / XML
 

Display XML Tree

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.Combine(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.Comment:                 newTreeNode.Text = "<!--" + xmlNode.Value + "-->";                 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.ComponentModel.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());   } }