可扩展标记语言
什么是Xml?
xml称为可扩展标记性语言,是eXtensible Markup Language 的缩写。在.NET框架中Xml是非常重要的一部分,它用于描述数据,是当前处理结构化文档信息的有力工具。xml与操作系统、编程语言的开发平台无关,可以实现不同系统之间的数据交互!
demol:
<?xml version="1.0" encoding="UTF_8" ?> <Engineer> <!--第一个员工的相关信息--> <ID>1002</ID> <Name>张靓颖</Name> <Age>20</Age> <--第二个员工的相关信息--> <ID>1003</ID> <Name>周杰伦</Name> <Age>22</Age> </Engineer>
上面demol中存储员工相关信息的文件结构与我们之前学习的HTML有些相似,都有标记。很明显Engineer标示的是员工,ID标示的是员工编号,“1002”被<ID>这个标记“包裹”,表示这个员工的ID是“1002”,其他标签的含义与其类似。这种格式的文件被称为Xml文件。
here:
<?xml version =”1.0” encoding=”UTF-8”?>是Xml的声明,它一般是Xml文件的第一行。xml声明有以下两部分组成:
- version:文档符合xml1.0规范
- encoding:文档字符编码,默认为“TUF-8”.
<!--第一个员工的相关信息—>,代表xml的注释内容。注释不能被嵌套。
XML语言的特点
- xml中的每对标记通常被称为节点,他们是成对出现而且必须是成对出现的,用来描写这个节点存储的内容。在节点中存储该节点的信息。
- xml中用于描述数据的各个节点可以自由扩展,也就是说xml用于描述信息的标记不是固定不变的。例如可以在上面demo中对每个员工的信息进行详细扩展,如:身高,体重等
- xml文件中的节点区分大小写,例如<Name></Name>和<name></naem>,即使两个节点存储的内容相同 ,xml也认为他们是两个不同的节点。
操作XML的方法
解析XML文件
对象 | 属性和方法 | 说明 |
DocumentElement | 获取根节点 | |
ChildNodes属性 | 获取所用子节点 | |
XmlDocument | Load()方法 | 读取整个xml的结构 |
InnerText属性 | 当前节点的值 | |
Name属性 | 当前节点的名称 | |
XmlNode | ChildNodes属性 | 当前节点的所有子节点 |
demo:
我们有这样夜歌xml文件:
<?xml version="1.0" encoding="UTF-8"?> <TVChannels> <Channel> <channelType>TypeA</channelType> <tvChannel>北京电视台</tvChannel> <path>fils/北京电视台.xml</path> </Channel> <Channel> <channelType>TypeB</channelType> <tvChannel>凤凰卫视</tvChannel> <path>fils/凤凰卫视.xml</path> </Channel> </TVChannels>
我们可以通过以下C#代码将他读取到应用程序中。
XmlDocument myXml = new XmlDocument(); myXml.Load("FullChannels.xml"); XmlElement xn = myXml.DocumentElement; foreach (XmlNode item in xn) { Console.WriteLine("{0}\t{1}\t{2}",item["channelType"].InnerText,item["tvChannel"].InnerText,item["path"].InnerText); }
下面是结果:
动态绑定TreeView
TreeView的属性和重要事件
属性 | 说明 |
Nodes | TreeView空间中的所有树节点 |
SelectedNode | 当前TreeView控件的选中节点,如果没有选中任何节点则返回为null |
重要事件 | |
AfterSelect | 选中树节点之后发生 |
TreeNode
属性 | 说明 |
Text | 节点显示的文本 |
index | 节点所在集合的索引 |
Level | 节点在树状菜单中的层级0、1、2…… |
Tag | 节点值 |
Nodes | 节点所有的下一级子节点 |
this.TreeView1.Nodes.Add(new TreeNode("节点1"))
或者
this.TreeView1.Nodes.Add("节点1")
给选中的节点添加子节点
this.TreeView1.SelectedNode.Nodes.Add("节点1")
TreeView动态删除节点
TreeView的节点是一个集合,其节点的删除方法和集合类似
删除选中的节点
this.TreeView1.SelectedNode.Remove();
清空选中节点的子节点
this.TreeView.SelectedNode.Nodes.Clear();
清空TreeView控件的所有子节点
this.TreeView.Nodes.Clear();