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];
结果:
Name1 18 Name2 19
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");