using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace MyFriends
{
class friends_xml
{
XmlDocument doc = new XmlDocument();
private string xmlpath;
//xmlPath载入的文档路径
public friends_xml(string xmlPath)
{
xmlpath = xmlPath;
doc.Load(xmlPath);
}
//返回文档的所有client节点
public XmlNodeList nameList()
{
XmlNode xn = doc.SelectSingleNode("friend");
return xn.ChildNodes;
}
//设置客户的参数
public string name = "";//客户的名字
public string sex = "";//客户的性别
public string phone = "";//客户的电话
public string zj = "";//座机
public string address = "";//地址
public string comment = "";//备注
//检索指定的用户
public void selectId(int i)
{
XmlNode xn = doc.SelectSingleNode("friend");
XmlNode xnl = xn.ChildNodes.Item(i);
sex = xnl.SelectSingleNode("sex").InnerText.ToString();
phone = xnl.SelectSingleNode("phone").InnerText.ToString();
zj = xnl.SelectSingleNode("zj").InnerText.ToString();
address = xnl.SelectSingleNode("address").InnerText.ToString();
comment = xnl.SelectSingleNode("comment").InnerText.ToString();
}
//添加新的客户
public void addClient(int i, string name, string sex, string phone, string zj, string address, string comment)
{
XmlNode xn = doc.SelectSingleNode("friend");//查找<friend>
XmlElement xel = doc.CreateElement("client");//创建一个<client>节点
xel.SetAttribute("id", i.ToString());//设置该节点的id属性
xel.SetAttribute("name", name);//设置该节点的name属性
XmlElement xelSex = doc.CreateElement("sex");//设置<sex>节点
xelSex.InnerText = sex;//设置文本节点
xel.AppendChild(xelSex);//添加到<client>节点中
XmlElement xelPhone = doc.CreateElement("phone");//设置<phone>节点
xelPhone.InnerText = phone;//设置文本节点
xel.AppendChild(xelPhone);//添加到<client>节点中
XmlElement xelZj = doc.CreateElement("zj");//设置<num>节点
xelZj.InnerText = zj;//设置文本节点
xel.AppendChild(xelZj);//添加到<client>节点中
XmlElement xelAddress = doc.CreateElement("address");//设置<address>节点
xelAddress.InnerText = address;//设置文本节点
xel.AppendChild(xelAddress);//添加到<client>节点中
XmlElement xelComment = doc.CreateElement("comment");//设置<comment>节点
xelComment.InnerText = comment;//设置文本节点
xel.AppendChild(xelComment);//添加到<client>节点中
xn.AppendChild(xel);//添加到<friend>节点中
doc.Save(xmlpath);//保存xml
}
//修改现有客户信息
public void clientAlert(int i, string name, string sex, string phone, string zj, string address, string comment)
{
XmlNode xn = doc.SelectSingleNode("friend");
XmlElement xel = (XmlElement)xn.ChildNodes.Item(i);//将子节点类型转换为XmlElement类型
xel.SetAttribute("name", name);
XmlNodeList xnlt = xel.ChildNodes;
xnlt.Item(0).InnerText = sex;
xnlt.Item(1).InnerText = phone;
xnlt.Item(2).InnerText = zj;
xnlt.Item(3).InnerText = address;
xnlt.Item(4).InnerText = comment;
doc.Save(xmlpath);//保存
}
//删除一个客户信息
public void clientDel(int i)
{
XmlNode xn = doc.SelectSingleNode("friend");
XmlNodeList xel = xn.ChildNodes;
//删除选定的子节点
//XmlElement xet = (XmlElement)xel.Item(i);
//xet.RemoveAll();
xn.RemoveChild(xel.Item(i));
//修改选定子节点后面的节点的id值
for (int j = i + 1; j < xel.Count; j++)
{
XmlElement xet_j = (XmlElement)xel.Item(j);
xet_j.SetAttribute("id", i.ToString());
i++;
}
doc.Save(xmlpath);//保存
}
}
}