XML
1.介绍
eXtensible Markup Language (可扩展标记语言)
Xml就是用一种格式化的方式来存储数据,并且是文本文件。
Xml要求所有的标记必须成对出现,必须有一个根节点且只有一个,区分大小写。
2. 通过C#创建
注意:如果想要通过DataSet读取XMl,则根节点下所有子节点名称必须一致。
XDocument doc = new XDocument();
// 1.创建声明节点,也可不写,会自动生成
//XDeclaration des = new XDeclaration("1.0","utf-8","yes");
//doc.Declaration = des;
// 2.创建根节点
XElement root = new XElement("Users");
doc.Add(root);
// 3.创建子节点并设置子节点属性,向子节点中添加节点
XElement user1 = new XElement("User");//子节点名称
user1.SetAttributeValue("Id", 1);
XElement name1 = new XElement("Name","Name1");
XElement age1 = new XElement("Age","18");
user1.Add(name1, age1);
XElement user2 = new XElement("User"); //子节点名称
user2.SetAttributeValue("Id", 1);
XElement name2 = new XElement("Name","Name2");
XElement age2= new XElement("Age","19");
user2.Add(name2, age2);
root.Add(user1, user2); //4.将子节点添加根节点之下
doc.Save("Test.xml");
var ds = new DataSet();
ds.ReadXml("Test.xml");
this.dgv.DataSource = ds.Tables[0];
结果:
<?xml version="1.0" encoding="utf-8"?>
<Users>
<User Id="1">
<Name>Name1</Name>
<Age>18</Age>
</User>
<User Id="2">
<Name>Name2</Name>
<Age>19</Age>
</User>
</Users>
3.查询
根据节点属性值查找指定节点。
var result = from t in doc.Descendants("Usre") //所有子节点中查找
//from t in doc.Root.Elements("User") //根节点下子节点查找
where t.Attribute("Id").Value == "2"
select new {
Name=t.Element("Name").Value,
Age=t.Element("Age").Value
};
this.dgv.DataSource = result.ToList();
4.修改和删除
找到指定节点后直接修改就可以
var result = from t in doc.Descendants("User") //所有子节点中查找
where t.Attribute("Id").Value == "2"
select t;
result.First().Element("Name").Value = "Name22"; //修改
result.First().Remove(); //删除
doc.Save("Test.xml"); //保存
5.读取XML文件
XDocument doc = XDocument.Load("xml.xml");