可扩展标记语言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的重要事件
属性 | 说明 |
---|---|
Nodes | TreeView空间的所有树节点 |
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表示当前选中的节点