Xml
XmlTextReader 提供了只向前的、快速的、只读的读取xml内容,对于大于1M的xml经常采用它进行读取,XmlTextReader.Create()加载xml文件
XmlDocument 把xml内容读取到内存当中,XmlDocument.Load()方法以共享读的方式加载文件
XDocument 是Linq to Xml采用的,跟XmlDocument相似,但性能方面比XmlDocument好
Linq to Xml 基本操作
//载入xml文档
XDocument xDocument = XDocument.Load(Server.MapPath(@"test.xml"));
//得到根元素
XElement root = xDocument.Root;
//根据元素名获取元素
XElement element = xDocument.Descendants("Class").First();
//根据元素属性值获取元素(要先判断是否为null)
XElement element2 = xDocument.Descendants().First(m => m.Attribute("Name")!=null&&m.Attribute("Name").Value == "Computer");
//根据元素的值获取元素
XElement element3 = xDocument.Descendants().First(m => m.Value == "Mr.Yang");
//根据元素名获取某些元素
List<XElement> elements = xDocument.Descendants("Class").ToList();
//根据元素属性值获取某些元素(要先判断是否为null)
List<XElement> elements2 = xDocument.Descendants().Where(m =>m.Attribute("Name")!=null&& m.Attribute("Name").Value == "Computer").ToList();
//根据元素的值获取某些元素
List<XElement> elements3 = xDocument.Descendants().Where(m => m.Value == "Mr.Yang").ToList();
//元素不存在子元素则添加
element.SetElementValue("Code", "101");
//元素存在子元素则更新
element.SetElementValue("Teacher", "Miss Yang");
//删除子元素
element.Element("Code").Remove();
//修改元素的值
element.Value = "abcdf";
//如果属性存在则修改属性值
element.SetAttributeValue("Name","English");
//如果属性不存在则添加属性
element.SetAttributeValue("Code","101");
//删除属
element.Attribute("Name").Remove();
//删除元素
element.Remove();
//保存修改到文档
//xDocument.Save(Server.MapPath(@"test.xml"));
注意:Descendants 可遍历某节点或文档下的所有子节点,Elements 则是遍历当前节点或文档下一级的子节点