转自:http://blog.csdn.net/andrew_wx/article/details/6680353
很久没碰XML文件读写了,今天帮朋友写了一个相关的读取XML文件的操作类,封装成dll便于使用。
先说下需求吧:
A:在XML文件中有多个集,每个集里面包含多个节点。
B:可根据集的名字的取出这个集合下面的所有节点值
C:可一次性取出所有的节点值
D:其中有一个是无限拓展的就是:表达式
E:把集合读取到一个模型(实体类)当中
先来看下XML文件结构的分析如下(我用红色方块勾出区域划分):
这里既3个区域(3个集合)。
实际使用效果:
要实现上面的效果,封装好了之后是很简单的。
一行代码即可获得数据。
以下是读取XML内容的代码片段:
- //获取所有指令名 填充到控件
- private void btn_getNames_Click(object sender, EventArgs e)
- {
- string[] names = xmlOpt.CommandNames;
- foreach (string str in names)
- {
- lst_names.Items.Add(str);
- }
- }
- //获取所有指令 填充到控件
- private void btn_commands_Click(object sender, EventArgs e)
- {
- foreach (XmlCommandModel model in xmlOpt.GetCommandModelList)
- {
- txt_commands.Text += model.CommandName + "\r\n";
- txt_commands.Text += model.CommandValue + "\r\n";
- txt_commands.Text += model.CommandString + "\r\n";
- foreach (string str in model.CommandPuts)
- {
- txt_commands.Text += str + "\r\n";
- }
- }
- }
- //统计指令信息
- private void btn_count_Click(object sender, EventArgs e)
- {
- txt_count.Text += "一共:" + xmlOpt.commandCout + "条指令" + "\r\n";
- txt_count.Text += "目标路径:" + xmlOpt.FilePath + "\r\n";
- }
- //根据指令名 获取一个指定的指令 填充到控件
- private void btn_GetByName_Click(object sender, EventArgs e)
- {
- txt_GetByName.Text = "";
- XmlCommandModel myModel = xmlOpt.GetCommandModelByName(txt_name.Text);
- txt_GetByName.Text += myModel.CommandName + "\r\n";
- txt_GetByName.Text += myModel.CommandValue + "\r\n";
- txt_GetByName.Text += myModel.CommandString + "\r\n";
- foreach (string put in myModel.CommandPuts)
- {
- txt_GetByName.Text += put + "\r\n";
- }
- }
很简单吧,看着很多,其实都是在使用。
提取都是一句话的事情啦。
该例子的完整代码下载地址:http://download.csdn.net/source/3512865