xml学习

namespace xml学习
{
    class Program
    {
        static void Main(string[] args)
        {
            #region xml写入1
            ////创建了一个空的XDocument对象
            ////创建了一个空的文档对象
            //XDocument document = new XDocument();

            ////1.1c创建一个文档声明
            ////第一个参数是版本号  第二个参数是  字体 第三个参数是  表示是否为独立的xml文件
            //XDeclaration xDec = new XDeclaration("1.0", "gb2312", "yes");
           
            //document.Declaration=xDec;
            ////1.2创建一个根节点
            //XElement rootElement =new XElement("Order");
            //document.Add(rootElement);

            ////1.3增加一个CustomerName节点 内容是“杨中科”
            //XElement cstNameElement = new XElement("CustomerName");
            //cstNameElement.SetValue("杨中科");
            //rootElement.Add(cstNameElement);
            ////1.4增加OrderNumber节点
            ////通过调用SetElemtValue
            //rootElement.SetElementValue("OrderNumber","BJ200888");

            ////1.5创建一个新对象 Items 节点
            //XElement itemElement = new XElement("Items");
            ////创建3个OrderItem节点
            //XElement orderItemElement1 = new XElement("OrderItem");
            //orderItemElement1.SetAttributeValue("Name","电脑");
            //orderItemElement1.SetAttributeValue("Count", "30");
            //itemElement.Add(orderItemElement1);

            //XElement orderItemElement2 = new XElement("OrderItem");
            //orderItemElement2.SetAttributeValue("Name", "电视");
            //orderItemElement2.SetAttributeValue("Count", "2");
            //itemElement.Add(orderItemElement2);

            //XElement orderItemElement3 = new XElement("OrderItem");
            //orderItemElement3.SetAttributeValue("Name", "水杯");
            //orderItemElement3.SetAttributeValue("Count", "2");
            //itemElement.Add(orderItemElement3);

            //rootElement.Add(itemElement);



            ////把这个空文档对象写入到xml文件中
            //document.Save("orders.xml");

            //Console.ReadKey();
            #endregion

            #region xml写入2
            //List<Person> list = new List<Person>()
            //{
            //    new Person(){Name="wangjian",Age=2,Email="[email protected]"},
            //    new Person(){Name="sdfsa",Age=25,Email="[email protected]"},
            //    new Person(){Name="wagn",Age=28,Email="[email protected]"}
            //};
           
            ////序列化
            ////XmlSerializer xmlSerialize = new XmlSerializer(typeof(List<Person >));
            ////xmlSerialize.Serialize();
            //XDocument myDocument = new XDocument();
            //XDeclaration myDeclaration = new XDeclaration("1.0","gb2312","yes");
            //myDocument.Declaration = myDeclaration;

            //XElement rootElement = new XElement("Root");

            //myDocument.Add(rootElement);

            //for (int i = 0; i < list.Count; i++)
            //{
            //    XElement person = new XElement("Person");

            //    person.SetElementValue("Name",list[i].Name.ToString());
            //    person.SetElementValue("Age", list[i].Age.ToString());
            //    person.SetElementValue("Email", list[i].Email.ToString());

            //    rootElement.Add(person);


            //}

            //myDocument.Save("myDocument.xml");

            #endregion

            #region xml读取  myDocument.xml
            //1.创建一个Dom对象
            XDocument document = XDocument.Load("myDocument.xml");
            //2.一定要找到根节点
            XElement rootElement = document.Root;
            //Console.WriteLine(rootElement.Name);
            //Console.ReadKey();

            //判断是否有属性:
            Console.WriteLine(rootElement.Name );

            //调用获取元素属性的方法
            GetAttribues(rootElement);

            //2.1获取根节点下的所有子节点
            //不传参数 表示获取根节点下的所有子元素
            //如果为Elements()方法传递参数 则表示要获取当前节点下的所有当前节点下的所有名称为
            //为参数中给定的名称的元素

            //只要返回类型是IEnumerable接口类型 无论是泛型还是非泛型都可以在foreach中遍历
            foreach (XElement item in rootElement.Elements())
            {
                //这个循环其实就是遍历根节点下的每个子元素
                //Console.WriteLine(item.Name);、
                Console.WriteLine("节点====={0}",item.Name);
                GetAttribues(item);
                foreach (XElement subElemnt in item.Elements())
                {
                    Console.WriteLine("子节点======================={0}",subElemnt.Name);
                    GetAttribues(subElemnt);
                }
            }
            Console.ReadKey();

            #endregion

        }

        //打印元素的属性
       
        private static void GetAttribues(XElement anyElement)
        {
            Console.WriteLine(anyElement.Name + "元素的属性");
            foreach (XAttribute attr in anyElement.Attributes())
            {
                Console.WriteLine(attr.Name + "  " + attr.Value);
            }
        }
    }


    class Person
    {
        public string Name { get; set; }
        public int  Age { get; set; }
        public string Email { get; set; }
    }
}

猜你喜欢

转载自275055162.iteye.com/blog/2215538
今日推荐