asp总结Xml

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 则是遍历当前节点或文档下一级的子节点

posted on 2012-09-17 14:17  穆穆  阅读(239)  评论(0编辑  收藏  举报