额,首先当然是创建XML了(新手要照着敲代码啊)
XDocument xdoc = new XDocument();//document是文档的意思,XDocument XML的文档(文件),这句话就是创建一个xml文件(在内存中,不是在你的c,d..盘上)
XElement xroot = new XElement("Root");//创建一个根节点,名字Root无所谓,你可以随便起个
xdoc.Add(xroot);//一个XML只有一个根
for (int i = 0; i < 3; i++)
{
XElement xPerson = new XElement("Person");//创建Person
xroot.Add(xPerson);//将Person加到Root的下一层节点
XElement xName = new XElement("Name", "小小" + i.ToString());//创建Name
XElement xAge = new XElement("Age", 20 + i);//创建Age
XElement xTel = new XElement("Tel", "1351222222" + i.ToString());//创建电话号码
xPerson.Add(xName);//将Name加入Person
xPerson.Add(xAge);//将Age加入Person
xPerson.Add(xTel);//将Tel加入Person
}
using (FileStream fs = File.OpenWrite("D:\\person.xml"))
{
xdoc.Save(fs);//将内存中的xml文档通过流写入磁盘D:\erson.xml文件中
}
这个是结果
查询XML
XDocument xdoc = XDocument.Load("D:\\person.xml");
var xresult = from x in xdoc.Descendants("Person")
select new
{
名字 = x.Element("Name").Value,
年龄 = x.Element("Age").Value,
号码 = x.Element("Tel").Value
};
dataGridView1.DataSource = xresult.ToList();
向XML中增加数据
XDocument xdoc = XDocument.Load("D:\\person.xml");
XElement xroot = xdoc.Root;
XElement xperson = new XElement("Person",
new XElement("Name", "大大"),
new XElement("Age", 22),
new XElement("Tel", "13111111111"));
xroot.Add(xperson);
using (FileStream fs = File.OpenWrite("D:\\person.xml"))
{
xdoc.Save(fs);
}
XElement xroot = xdoc.Root;
XElement xperson = new XElement("Person",
new XElement("Name", "大大"),
new XElement("Age", 22),
new XElement("Tel", "13111111111"));
xroot.Add(xperson);
using (FileStream fs = File.OpenWrite("D:\\person.xml"))
{
xdoc.Save(fs);
}
结果
修改XML中的数据
XDocument xdoc = XDocument.Load("D:\\person.xml");
var xresult = from x in xdoc.Descendants("Person")
where x.Element("Age").Value == "22"
select x;
foreach (var xr in xresult)
{
xr.Element("Age").Value = "23";
}
using (FileStream fs = File.OpenWrite("D:\\person.xml"))
{
xdoc.Save(fs);
}
结果:
把22岁的人都修改为23岁了
删去XML的数据
XDocument xdoc = XDocument.Load("D:\\person.xml");
var xresult = from x in xdoc.Descendants("Person")
where x.Element("Name").Value == "大大"
select x;
xresult.Remove();
xdoc.Save("D:\\person.xml");
结果
把名字叫大大的Person删掉了