加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Linq To Xml

发布时间:2020-12-16 05:58:34 所属栏目:百科 来源:网络整理
导读:前言:Linq to xml与前面所说的XML API,不冲突,也不存在谁替代谁的说法,Linq To XML 只是简化了我们的对xml文档的操作. 添加引用,然后通过几个例子,说一下里面常用的类 using System.Xml.Linq; 1:XDocument 对象代表了xml文档 2:XElement 对象代表了元素 3:XA

前言:Linq to xml与前面所说的XML API,不冲突,也不存在谁替代谁的说法,Linq To XML 只是简化了我们的对xml文档的操作.

添加引用,然后通过几个例子,说一下里面常用的类

using System.Xml.Linq;

1:XDocument 对象代表了xml文档

2:XElement 对象代表了元素

3:XAttribute 对象代表了属性


(一)

如下代码,创建一个通过使用XDocument,XElement,XAttribute对象创建一个xml文档

            XDocument xdoc = new XDocument(
                   new XElement("customers",new XElement("customer",new XAttribute("ID","A"),new XAttribute("City","New York"),new XAttribute("Region","North America"),new XElement("order",new XAttribute("Item","Widget"),new XAttribute("Price",100)
                           ),"Tire"),200)
                           )
                       ),"B"),"Mumbai"),"Asia"),"Oven"),501)
                           )
                       )
                   )
               );
            xdoc.Save("D:xml.xml");

生成的xml文档:

文件:D:xml.xml

<?xml version="1.0" encoding="utf-8"?>
<customers>
  <customer ID="A" City="New York" Region="North America">
    <order Item="Widget" Price="100" />
    <order Item="Tire" Price="200" />
  </customer>
  <customer ID="B" City="Mumbai" Region="Asia">
    <order Item="Oven" Price="501" />
  </customer>
</customers>

C#那一段代码,还有另一种写法,看一下模板,用"分开"的写法

文件:D:xml2.xml

<?xml version="1.0" encoding="utf-8"?>
<customers>
  <customer ID="B" City="Mumbai" Region="Asia">
    <order Item="Oven" Price="501">MyOrder</order>
  </customer>
</customers>

代码如下:

            XDocument xdoc = new XDocument();
            XElement xe_customers = new XElement("customers");//根元素

            XElement xe_customer =new XElement("customer");
            XAttribute xa_id = new XAttribute("ID","B");
            XAttribute xa_city = new XAttribute("City","Mumbai");
            XAttribute xa_region = new XAttribute("Region","Asia");
            xe_customer.Add(xa_id);
            xe_customer.Add(xa_city);
            xe_customer.Add(xa_region);


            XElement xe_order = new XElement("order","MyOrder");
            XAttribute xa_item = new XAttribute("Item","Oven");
            XAttribute xa_price = new XAttribute("Price",501);
            xe_order.Add(xa_item);
            xe_order.Add(xa_price);

            xe_customer.Add(xe_order);
            xe_customers.Add(xe_customer);
            xdoc.Add(xe_customers);
            xdoc.Save("D:xml2.xml");
上面这一段代码的方式,如果想从数据库中生成XML,配合上循环,也不错.

(二)

xml文档的读/查

1:实例:

 string xmlFileName = @"D:xml2.xml";
            XDocument customers = XDocument.Load(xmlFileName);

            Console.WriteLine("Elements in loaded document:");
            //var queryResult = from c in customers.Elements()
            //                  select c.Name;
            //var queryResult = customers.Elements().Select(c=>c.Name);
            var queryResult = customers.Descendants();
            Console.WriteLine(queryResult.Count());
            foreach (var item in queryResult)
            {
                Console.WriteLine("name为:"+item.Name +"      "+"value为:"+item.Value+ "rn");
            }
            Console.Write("Press Enter/Return to continue:");
            Console.ReadLine();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读