可扩展标记语言Xml

可扩展标记语言Xml

什么是XML

xml称为标记性语言,是eXtensible Markup Language 的缩写。在.NET框架中XML是非常重要的一部分,它用于描述数据,是当前描述数据,是当前处理结构化文档信息的有力工具。XML与操作系统,编程语言的开发平台无关,可以实现不同系统之间的数据交互。

<?xml version="1.0" encoding="utf-8" ?>
<TVChannels> <!-- 根节点 -->
	<Channel>
		<channelType>TypeA</channelType> <!--频道类型-->
		<tvChannel>北京电视台</tvChannel> <!--频道名称-->
		<path>北京电视台.xml</path>  <!--频道对应XML文件的本地路径-->
	</Channel>
	<Channel>
		<channelType>TypeB</channelType>
		<tvChannel>凤凰卫视</tvChannel>
    <path>凤凰卫视.xml</path>
	</Channel>
</TVChannels>
	

xml语言具有一下特点:

  • XML中的没对标记通常被称为节点,他们成对出现而且必须这样,用来描述这个节点存储的内容。再节点中存储该节点的信息。
  • xml中用于描述数据的各个节点可以自由扩展,也就是说xml用于描述信息的标记不是固定不变的。
  • xml文件中的节点区分大小写。例如和,即使两个节点的内容相同,XMl也认为他们是两个不同的节点

操作xml的方法

 			XmlDocument myXml1 = new XmlDocument();
			try
            {
			myXml.Load("D:/作业/08预习1,2/FullChannels.xml");
            }
            catch (Exception)
            {
				Console.WriteLine("文件找不到");
            }
            XmlNode Node = myXml.DocumentElement;
            foreach (XmlNode item in Node.ChildNodes)
            {
                  Console.WriteLine(item["channelType"].InnerText+
                  "\t"+item["tvChannel"].InnerText+"\t"+item["path"].InnerText);
            }
            Console.ReadLine();

XmlDocument对象的属性和方法:

  • DocumentElement属性 获取根节点
  • ChildNodes属性获取所有子节点
  • Load()方法 读取整个XML的结构

XmlNode对象的属性:

  • InnerText属性 当前节点的值
  • Name属性 当前节点的名称
  • ChildNodes属性 当前节点的所有子节点

在解析之前,我们必须明白XML节点的层次关系

  • 根节点是TVChannels
  • 根节点的子节点Channel表示各个频道对象
  • Channel节点的各个子节点表示频道对象的属性:频道类型,频道名称,频道文件路径

动态绑定Treeview

 		//选中TreeView单击事件
		private void tr_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (this.tr.SelectedNode.Level !=0)
            {
                //在文本框显示节点的文本
                txt1.Text = e.Node.Text;
            }
        }
		//添加根节点
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.txt1.Text != string.Empty)
            {
                TreeNode treeNode = new TreeNode(txt1.Text);
                this.tr.Nodes.Add(treeNode);
            }
        }
		//添加子节点
        private void button2_Click(object sender, EventArgs e)
        {
            if (this.txt1.Text !=string.Empty && tr.SelectedNode !=null)
            {
                TreeNode treeNode = new TreeNode(txt1.Text);
                this.tr.SelectedNode.Nodes.Add(treeNode);
            }
            else
            {
                MessageBox.Show("请选中一个根节点");
            }
        }

TreeView的重要事件

属性说明
NodesTreeView空间的所有树节点
SelectedNode当前TreeView控件中选中的树节点,如果没有选中树节点返回NUll
重要事件说明
AfterSelect选中树节点之后发生

TreeView的属性

属性说明
Text节点显示的文本
Index节点所在集合的索引
Level节点在树状菜单中的层级0,1.。。。。。
Tag节点值
Nodes节点的所有下一级子节点

TreeView动态删除节点

删除选中的节点

this.tvMenu.SelectedNode.Remove();

清空选中的节点的子节点

this.tvMenu.SelectedNode.Nodes.Clear();

清空TreeView控件的所有子节点

this.tvMenu.Nodes.Clear();

本章总结

  • XML称为可扩展标记语言,它主要用于描述数据
  • 读取一个XML的文档使用XmlDocument对象,XML节点使用XMLNodes对象表示
  • XmlDocument对象的DocumentElement属性可以获得xml文档的根节点,ChildNodes属性可以获得所有子节点
  • TreeView用于显示具有层次结构的信息,主要属性有Nodes和SelectedNode.Node属性包含了TreeView顶级子节点的集合,selectedNode表示当前选中的节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值