首页 > 其他 > 详细

Linq to Xml

时间:2014-12-22 17:39:34      阅读:183      评论:0      收藏:0      [点我收藏+]

需要引用的命名空间:   using System.Xml.Linq;

常用的类:XDocument、XElement、XAttribute

一、使用Linq to xml创建xml文档

            XDocument xml = new XDocument(
                new XElement("configuration",
                    new XElement("ImgButtonSettings",
                        new XElement("button",
                            new XElement("name", new XAttribute("id", "EFS"), "close"),
                            new XElement("size-w",61),
                            new XElement("size-h", new XAttribute("ff", 564), 56),
                            new XElement("localtion-x",970),
                            new XElement("localtion-y",3),
                            new XElement("openurl",""),
                            new XElement("visable",true)
                            ),
                         new XElement("button",
                            new XElement("name", new XAttribute("id", "EFS"), "back"),
                            new XElement("size-w", 61),
                            new XElement("size-h", new XAttribute("ff", 564), 56),
                            new XElement("localtion-x", 990),
                            new XElement("localtion-y", 3),
                            new XElement("openurl", ""),
                            new XElement("visable", true)
                            )
                     )
                )
            );
            xml.Save(@"E:\123.xml");

  

二、使用Linq to xml 查询xml

注意子元素和子代(即后代)元素的区别,子元素就是儿子 ,子代元素就是所有后代

Element()和Elements()方法获取的都是子元素,非子元素的后代元素是获取不到的

Descendants()获取的是后代元素

XDocument对象的子元素有且只有一个就是xml的根节点

  // 获取button节点下的所有localtion-x节点
            var node = from x in xml.Descendants("button").Elements()
                       where x.Name == "localtion-x"
                       select x;
            foreach (var item in node)
            {
                Console.WriteLine(item.Name);//获取节点的名字
                Console.WriteLine(item.Value);//获取节点的值
            }


            //获取button下id属性为name的所有name节点
            var node2 = from x in xml.Descendants("button").Elements("name")
                       where x.Attribute("id").Value == "ABC"
                       select x;
            foreach (var item in node2)
            {
                Console.WriteLine(item.Value);
            }
            

 

Linq to Xml

原文:http://www.cnblogs.com/lxf1117/p/4178510.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!