Display XML Tree : Xml Tree « XML « C# / CSharp Tutorial

Home
C# / CSharp Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statement
5.String
6.struct
7.Class
8.Operator Overload
9.delegate
10.Attribute
11.Data Structure
12.Assembly
13.Date Time
14.Development
15.File Directory Stream
16.Preprocessing Directives
17.Regular Expression
18.Generic
19.Reflection
20.Thread
21.I18N Internationalization
22.LINQ
23.GUI Windows Forms
24.Windows Presentation Foundation
25.Windows Communication Foundation
26.Workflow
27.2D
28.Design Patterns
29.Windows
30.XML
31.XML LINQ
32.ADO.Net
33.Network
34.Directory Services
35.Security
36.unsafe
C# / C Sharp
C# / C Sharp by API
C# / CSharp Open Source
C# / CSharp Tutorial » XML » Xml Tree 
30.17.1.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(911);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(2816);
        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(5145);
        this.cmdLoad.Name = "cmdLoad";
        this.cmdLoad.Size = new System.Drawing.Size(5624);
        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(418);
        this.txtXmlFile.Name = "txtXmlFile";
        this.txtXmlFile.Size = new System.Drawing.Size(46821);
        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(537);
        this.treeXml.Name = "treeXml";
        this.treeXml.Size = new System.Drawing.Size(566264);
        this.treeXml.TabIndex = 4;
        // 
        // XmlTreeDisplay
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(583314);
        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());
  }
}
30.17.Xml Tree
30.17.1.Display XML Tree
30.17.2.Load Xml to TreeView
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.