C# Linq To XML的学习(创建并编辑XML树)示例

Linq创建xml树,并对树中元素或属性的值修改。
 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Xml.Linq;

using System.Xml;

namespace LinqToXMLStudy

{

    //***********************************************************************************************************

    //Module:Program.cs

    //Author:limeteor

    //Create Date:2008-06-30

    //***********************************************************************************************************

    class Program

    {

        static void Main(string[] args)

        {

            //用linq创建XML树------------------------------------------------------------------------------------

            XElement xmlTree = new XElement("Contacts",

                                new XElement("Contact",

                                    new XElement("Name", "Patrick Hines"),

                                    new XElement("Phone", "206-555-0144",

                                        new XAttribute("Type", "Home")),

                                    new XElement("Phone", "425-555-0145",

                                        new XAttribute("Type", "Work")),

                                    new XElement("Address",

                                        new XElement("Street1", "123 Main St"),

                                        new XElement("City", "Mercer Island"),

                                        new XElement("State", "WA"),

                                        new XElement("Postal", "68042")

                                    )

                                )

                            );

            Console.WriteLine(xmlTree);

            //用linq创建XML树结束-------------------------------------------------------------------------------

            //修改xml中属性的值---------------------------------------------------------------------------------

             IEnumerable<System.Xml.Linq.XElement> xe = xmlTree.Descendants("Phone");//查询出元素名为Phone的所有集合,查询时区分大小写

             var v = xe.Where(p => p.Attribute("Type").Value == "Home");

            

             foreach (var s in v)

             {

                 s.SetValue("hello");

             }

             Console.WriteLine("修改后的结果为:");

             Console.WriteLine(xmlTree);

             //修改xml中属性的值结束-----------------------------------------------------------------------------

            Console.ReadKey();

        }

    }

}

posted @ 2009-03-23 17:48  LiMeteor  阅读(494)  评论(0编辑  收藏  举报