Display XML Tree : Xml Tree : XML C# Examples


C# Examples » XML » Xml Tree »

 

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());
    }
}
    
   
  
   




HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo XML
» Xml Tree