C# xml 文件的简单操作
来源:互联网 发布:各国驱逐舰知乎 编辑:程序博客网 时间:2024/06/06 03:47
XML 文件格式
<?xml version="1.0" encoding="utf-8"?>
<foot>
<Coordinator Id="1" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082640.png" CoordName="p1" PhoneNo="123456754" Statue="1" dataTimes="2013/12/13" />
<Coordinator Id="2" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082652.png" CoordName="p2" PhoneNo="123456754" Statue="1" dataTimes="2013/12/13" />
<Coordinator Id="3" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082659.png" CoordName="p3" PhoneNo="123456754" Statue="2" dataTimes="2013/12/13" />
<Coordinator Id="4" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082708.png" CoordName="p4" PhoneNo="123456754" Statue="2" dataTimes="2013/12/13" />
<Coordinator Id="5" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082718.png" CoordName="p5" PhoneNo="123456754" Statue="3" dataTimes="2013/12/13" />
<Coordinator Id="6" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082724.png" CoordName="p6" PhoneNo="123456754" Statue="3" dataTimes="2013/12/13" />
<Coordinator Id="7" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082733.png" CoordName="p7" PhoneNo="123456754" Statue="0" dataTimes="2013/12/13" />
<Coordinator Id="8" ImageUrl="E:\WF_PicFactory\bin\Debug..\..\..\Images\CoordinatorPic\20131213082741.png" CoordName="p8" PhoneNo="123456754" Statue="0" dataTimes="2013/12/13" />
</foot>
XmlDocument xmldoc = new XmlDocument();
string docpath = Application.StartupPath + @"..\..\..\ConfigXml\CoordMsg.xml";//存放值班人员信息Xml文件路径
/// <summary>
/// 获取所有Coordinators对象
/// 获取所有值班员工信息
/// </summary>
/// <returns></returns>
private List<Coordinator> GetCdinator()
{
try
{
List<Coordinator> cdinators = new List<Coordinator>();
xmldoc.Load(docpath);
XmlNodeList nodelist = xmldoc.SelectSingleNode("foot").ChildNodes;
foreach (XmlNode XN in nodelist)
{
Coordinator cd = new Coordinator();
cd.Id = XN.Attributes["Id"].Value;
cd.CoordPicUrl = XN.Attributes["ImageUrl"].Value;
cd.CoordName = XN.Attributes["CoordName"].Value;
cd.Statue = XN.Attributes["Statue"].Value;
cd.PhoneNo = XN.Attributes["PhoneNo"].Value;
cd.dataTimes = XN.Attributes["dataTimes"].Value;
cdinators.Add(cd);
}
return cdinators;
}
catch (Exception err)
{
//MessageBox.Show("获取值班人员信息失败!失败原因:" + err.Message, "提示信息",
// MessageBoxButtons.OK, MessageBoxIcon.Information);
//Application.Exit();
return null;
}
}
/// <summary>
/// 添加员工信息数据到存储数据文件
/// </summary>
/// <param name="cdinator"></param>
private void AddCoordinatorToDataFile(Coordinator cdinator)
{
try
{
xmldoc.Load(docpath);
XmlNode Foot = xmldoc.SelectSingleNode("foot");
XmlElement NewCd = xmldoc.CreateElement("Coordinator");
NewCd.SetAttribute("Id", cdinator.Id);
NewCd.SetAttribute("ImageUrl", cdinator.CoordPicUrl);
NewCd.SetAttribute("CoordName", cdinator.CoordName);
NewCd.SetAttribute("PhoneNo", cdinator.PhoneNo);
NewCd.SetAttribute("Statue", "4");
NewCd.SetAttribute("dataTimes", cdinator.dataTimes);
Foot.AppendChild(NewCd);
xmldoc.Save(docpath);
if (!string.IsNullOrEmpty(cdinator.CoordPicUrl))
{
File.Copy(LocalPicUrl, CoordPicUrl, true);//数据存储到配置文件后再上传图片到服务器
}
}
catch (Exception err)
{
MessageBox.Show("添加员工信息失败!失败原因:" + err.Message, "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
/// <summary>
/// 变更修改的数据到数据文件
/// </summary>
/// <param name="cdinator"></param>
private void ModifyCoordinatorToDataFile(Coordinator cdinator)
{
try
{
xmldoc.Load(docpath);
XmlNodeList nodelist = xmldoc.SelectSingleNode("foot").ChildNodes;
foreach (XmlNode XN in nodelist)
{
if (XN.Attributes["Id"].Value.ToString() == cdinator.Id)
{
XN.Attributes["CoordName"].Value = cdinator.CoordName;
XN.Attributes["PhoneNo"].Value = cdinator.PhoneNo;
if (!string.IsNullOrEmpty(CoordPicUrl))
{
XN.Attributes["ImageUrl"].Value = CoordPicUrl;
File.Copy(LocalPicUrl, CoordPicUrl, true);//数据存储到配置文件后再上传图片到服务器
File.Delete(cdinator.CoordPicUrl);//删除旧图片 引发了线程问题,图片在另一个进程中使用(已解决)
}
xmldoc.Save(docpath);
}
}
}
catch (Exception err)
{
MessageBox.Show("修改员工信息失败!失败原因:" + err.Message, "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
/// <summary>
/// 从值班员工表中删除指定员工的信息
/// </summary>
/// <param name="cdinator">选中员工的信息</param>
private void DeleteCoordinator(Coordinator cdinator)
{
try
{
xmldoc.Load(docpath);
XmlNode foot = xmldoc.SelectSingleNode("foot");
XmlNodeList nodelist = xmldoc.SelectSingleNode("foot").ChildNodes;
foreach (XmlNode XN in nodelist)
{
if (XN.Attributes["Id"].Value.ToString() == cdinator.Id)
{
if (!string.IsNullOrEmpty( cdinator.CoordPicUrl))
{
File.Delete(cdinator.CoordPicUrl);//删除员工图片
}
foot.RemoveChild(XN);
}
}
xmldoc.Save(docpath);
}
catch (Exception err)
{
MessageBox.Show("删除员工信息失败!失败原因:" + err.Message, "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
- C#对XML文件的简单操作
- C# xml 文件的简单操作
- 【黑马.net程序员】C#简单的操作Xml文件
- C# --XML文件的操作
- 简单的XML文件操作
- 简单的XML操作:XML文件创建
- 简单的XML操作:XML文件创建
- C#简单操作XML
- c#对xml的简单操作
- c#对xml的简单操作
- c#对xml的简单操作
- c#对xml的简单操作
- c#对xml的简单操作
- C# 操作Xml文档的简单示例
- C# 二进制文件操作 简单的文件操作
- C#操作XML文件
- C# 操作 XML文件
- c#操作xml文件
- InitCommonControls和InitCommonControlsEx
- nutch 2.* 导入eclipse
- Executor框架
- Android 进程间通信实现原理分析
- Android 进程间通信实现原理分析
- C# xml 文件的简单操作
- 双缓冲避免MFC图形闪烁(转)
- Android 进程间通信实现原理分析
- Android 进程间通信实现原理分析
- Juniper SSLVPN每隔一小时自动断开
- js正则匹配多个匹配的最后一个匹配---$和的g用法
- Android 进程间通信
- 怎样用 C/C++ 开发一个原生程序运行在 Android 下而不用 ADK、NDK
- Android 进程间通信