C# 通过解析xml文件赋值给TreeView

本文介绍如何使用C#进行XML文件的基本操作,包括读取XML文件的元素及属性,并演示如何利用TreeView控件创建动态树状菜单。通过实例代码展示了节点的添加、删除等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2017年3月1日13:39:34

0.抽象类
  如果一个类继承自抽象类,那么它必须实现抽象类中的 所有抽象方法,除非该类本身也是抽象类

  
0.1:
 List<Animal>  list=new List<Animal>();
 list.Add(dog);  age
 list.Add(cat);
 
 foreach(Animal item in list)
 {
    if(item is Dog)
{
  Dog dog=(Dog)item;
  Dog dog=item as Dog;
}
 }

1.会编写XML文件
访问修饰符:public protected private  (protected internal)====>访问修饰符总结

Load:加载.......
Loading....


public virtual void Load(Stream inStream);
public virtual void Load(string filename);
public virtual void Load(TextReader txtReader);
public virtual void Load(XmlReader reader);


如何获取xml文件的根节点?
doc.DocumentElement;



2.会读取XML文件的元素
  类
   1.XmlDocument  含义:整个文档对象
      属性 XmlNode root=  doc.documentElement;  获取根节点
       xxx.childNodes          获取当前结点所有的子结点集合
  
  方法 load()      含义:获取xml结构
   
   
   2.XmlNode   含义:单个节点对象
   
    属性 innerText    获取节点的文本值
     Name         获取节点的名称
 childNodes   获取当前结点所有的子结点集合
 
 
3.会使用TreeView创建动态树状菜单

  *:用代码构建节点,游离的
  TreeNode tn=new TreeNode();
  tn.Text="";
  
  TreeNode tn=new TreeNode("赋值");
  
  
  *:选中的节点
     TreeNode selectNode=tvList.selectedNode;
 
  *:删除节点
     selectNode.Remove();
 
 
   *:如何获取当前节点的所有节点集合  tn.Nodes
   
   *:return 如果方法没有返回值,执行到return,结束当前方法
   
   *:事件afterSelect
   
   
   *:2.Level属性:相对于树形结构而言,从0开始
   
   
   *3.Tag:Tag属性是专门为程序员量身定做的一个保存数据的容器。他可以保存任何数据类型的数据。
     tn.Tag=1;
 tn.Tag="1";
 tn.Tag=我是泛型;
 


 网络电视精灵
 
 使用控件:
 
 
作业:1.总结访问修饰符
      2.xml的修改和删除操作  use code to modify the xml document's node information
  3.简单工厂和单例 (开始懂了)
  

                             

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace day08_123

{

    publicpartialclassForm1 : Form

    {

        publicForm1()

        {

           InitializeComponent();

        }

 

     

        privatevoidForm1_Load(object sender, EventArgse)

        {

            //如何给TreeView添加一个节点

            //TreeNode 代表树上的一个接待

            //1.在内存中构建一个游离 TreeNode对象 tn

 

            TreeNode tn = newTreeNode("全国");

           tn.Tag="quanguo";

            //2.将归结于tn

           treeView1.Nodes.Add(tn);

            //子节点的名字

            TreeNode chi = newTreeNode("大北京");

           chi.Tag = "dabeijing";

           tn.Nodes.Add(chi);

        }

 

        privatevoidbutton2_Click(object sender, EventArgse)

        {

            stringword = textBox1.Text;

            TreeNode tn = newTreeNode(word);

            //选中的节点对象

 

            //treeView1.SelectedNode 选中的那个节点

            TreeNode select = treeView1.SelectedNode;

            //插入输入的节点

           select.Nodes.Add(tn);

 

 

        }

 

        privatevoidbutton1_Click(object sender, EventArgse)

        {

 

            //选中谁删除谁

            TreeNode select = treeView1.SelectedNode;

 

            if(select.Nodes.Count>0)

            {

               MessageBox.Show("该分组下有子类,不能删除","温馨提示",MessageBoxButtons.AbortRetryIgnore,MessageBoxIcon.Error);

 

               return;

            }

           select.Remove();

 

 

        }

 

        privatevoidtreeView1_AfterSelect(object sender,TreeViewEventArgs e)

        {

            TreeNode select = treeView1.SelectedNode;

            intlevel = select.Level;

            //取值 qian

            stringenword = (string)select.Tag;

            MessageBox.Show(enword);

 

        }

    }

}

-------------------------------------------------------------------------------------------------------------------------------------usingSystem;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Xml;

namespace day08

{

    classProgram

    {

        staticvoidMain(string[] args)

        {

            XmlDocument doc = newXmlDocument();

           doc.Load("XMLFile1.xml");

            XmlNode root = doc.DocumentElement;

            foreach(XmlNode child inroot.ChildNodes)

            {

               string bookid=child.Attributes["id"].Value.ToString();

               Console.WriteLine(bookid);

               Console.WriteLine("----------------------------------------------");

 

 

               foreach (XmlNodeitem in child.ChildNodes)

               {

 

                   switch (item.Name)

                   {

                        case"booka":

                            Console.WriteLine("" +child.InnerText);

                            break;

                        case"bookname":

                            Console.WriteLine("" +child.InnerText);

                            break;

                        case"bookb":

                            Console.WriteLine("" +child.InnerText);

                            break;

                   }

 

               } Console.WriteLine("-----------------------");

 

              

            }Console.ReadKey();

        }

    }

}

 

 

 

<?xmlversion="1.0"encoding="utf-8"?>

<books>

  <bkid="001">

    <booka>10086</booka>

    <bookname>C#深入.net</bookname>

    <bookb>原老师</bookb>

  </bk>

 

  <bk  id="002">

    <booka>10010</booka>

    <bookname>C#优化Mysql</bookname>

    <bookb>原老师</bookb>

  </bk>

</books>

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值