XML被称为可扩展标记性语言,是eXtensible Markup Language是缩写。在.Net框架中是非常重要的一部分,它用于描述数据,是当前处理结构化文档信息的有力工具。
例:
<?xml version="1.0" encoding="utf-8" ?>
<Engineer>
<ID>1002</ID>
<Name>张靓</Name>
<Age>20</Age>
<!-- -->
<ID>1001</ID>
<Name>周杰</Name>
<Age>22</Age>
</Engineer>
从上可看出XML特点:
Ø XML中用于描述的各个节点可以自由扩展,也就是说XML用于描述信息的标记不是固定不变的。
Ø XML文件中的节点区分大小写。
Ø XML中的每个标记通常被称为节点,它们是成对出现二期是必须成对出现的,用来描述这个节点存储的内容。
Ø XML只有一个跟节点且包含一个文档说明(头部声明)。
操作XML的对象属性和方法
对象 |
属性和方法 |
说明 |
XmlDocument |
DocumentElement属性 |
获取根节点 |
|
ChildNodes属性 |
获取所以子节点 |
|
Load()方法 |
读取整个XML的结构 |
XmlNode |
InnerText属性 |
当前节点的值 |
|
Name属性 |
当前节点的名字 |
|
ChildNodes属性 |
当前节点的所以子节点 |
例:
XmlDocument myXml = new XmlDocument();
myXml.Load("XMLFile.xml"); //读取指定的XML文档
XmlNode engineer = myXml.DocumentElement; //读取XML的根节点
foreach (XmlNode node in engineer.ChildNodes) //对子节点进行循环
{
//将每个节点的内容显示出来
switch (node.Name)
{
case "ID":
Console.WriteLine("ID:{0}",node.InnerText);
break;
case "Name":
Console.WriteLine("姓名:{0}",node.InnerText);
break;
case "Age":
Console.WriteLine("年龄:{0}",node.InnerText);
break;
}
}
Console.ReadLine();
TreeView的重要属性和事件
属性 |
说明 |
Nodes |
TreeView控件中的所以树节点 |
SelectedNode |
当前TreeView控件中选定的树节点,如果当前没有选定树节点,返回值为null |
事件 |
说明 |
AfterSelect |
选定树节点之后发生 |
代码:
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
//判断节点层级,如不是根节点,选中时,在文本框显示相应的值
if (this.treeView1.SelectedNode.Level != 0)
{
//在文本框显示节点的文本
this.textBox1.Text = e.Node.Text;
}
}
//添加根节点
private void button1_Click(object sender, EventArgs e)
{
if (this.textBox1.Text != string.Empty)
{
//创建一个节点对象
TreeNode rootNode = new TreeNode(this.textBox1.Text);
//添加节点为TreeView根节点
this.treeView1.Nodes.Add(rootNode);
}
}
//添加子节点
private void button2_Click(object sender, EventArgs e)
{
if (this.textBox1.Text != string.Empty)
{
//创建一个子节点对象
TreeNode childNode = new TreeNode(this.textBox1.Text);
//添加节点为选定节点的子节点
this.treeView1.SelectedNode.Nodes.Add(childNode);
}
else
{
MessageBox.Show("请选择一个根节点!");
}
}
Ø 删除选定的节点
this.treeView1.SelectedNode.Remove();
Ø 清空选择的节点的子节点
this.treeView1.SelectedNode.Nodes.Clear();
Ø 清空TreeView控件的所有的子节点
this.treeView1.Nodes.Clear();
用C#程序读写一个文件需要以下五个基本步骤
① 创建文件流
② 创建阅读器或者写入器
③ 执行读写操作
④ 关闭阅读器或者写入器
⑤ 关闭文件流
例:
代码:
//读取文件
private void button2_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "文本文件 *.txt|*.txt|C#文件 *.cs|*.cs";
openFileDialog1.FileName = "文本文件.txt";
openFileDialog1.ShowDialog();
this.textBox1.Text = openFileDialog1.FileName;
//创建文件流
FileStream myFs = new FileStream(this.textBox1.Text, FileMode.Open);
//创建读取器
StreamReader mySr = new StreamReader(myFs,Encoding.Default);
//将文件内容读取到文本框
string text = mySr.ReadToEnd();
richTextBox1.Text = text;
//关闭读取器
mySr.Close();
//关闭文件流
myFs.Close();
}
//写入文件
private void button1_Click(object sender, EventArgs e)
{
//创建文件流
FileStream myFs = new FileStream(textBox1.Text, FileMode.CreateNew);
//创建写入器
StreamWriter mySw = new StreamWriter(myFs,Encoding.Default);
//将文本框的内容写入文件中
mySw.WriteLine(richTextBox1.Text);
//关闭写入器
mySw.Close();
//关闭文件流
myFs.Close();
}