zoukankan      html  css  js  c++  java
  • XDocument简单入门

    1、XML(extensible markup language;XML )
      定义:,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
      
      XML语法规范:  标签(Tag)、嵌套(Nest)、属性(Attribute) [标签闭合、属性双引号、大小写敏感]
       
      XML结构:父节点、子节点、兄弟节点
      
      常见方法:DOM(文档对象模型)、Sax(事件驱动、XmlTextReader)、XmlSerializer(序列化)、Linq to XML
      
      常用类型:XElement、XDocument、XAttribute
      
    2、使用代码编写XML文件
      [1]、注意:(1)、需要.Net Framework 3.5版本才能使用XDocument对象。
        (2)、XDOcument类相比于XmlDocument类,配合Linq使用更方便
       
      [2]、创建XML文档:
        new XDocument对象
        创建一个根节点XElement:构造方法中定义节点名字
        加到XML文档中:Add() 方法
        文档保存:Save() 方法
        添加属性:new 一个Attribute、Add上
        添加节点:new一个Element、可以设定Value给定值
       
      [3]、读取XML文件
        加载文档:XDocument.Load()方法
        获取根节点:Root属性
        元素签名与值(所以):Name、value属性
        获取直接子元素:Element方法与Elements方法
        读取属性:Attribute方法与Attributes方法,使用value
        获取所以子节点:递归
        
      实例1:            

       //创建Xdocument对象
                XDocument xDoc = new XDocument();
                //创建一个根节点,定义节点名字Student
                XElement xEle = new XElement("Student");
                //加载到XML文档
                xDoc.Add(xEle);
    
               //添加一个属性值,
                XAttribute xAttr = new XAttribute("Id","101");
                xEle.Add(xAttr);
    
                //添加节点
                XElement xEleName = new XElement("Name","dede");
                XElement xEleAge = new XElement("Age","23");
                XElement xEleGender = new XElement("Gender","男");
                xEle.Add(xEleName,xEleAge,xEleGender);
                xEleAge.Value = "22";
                //保存文档
                xDoc.Save(@"d:\caoyi.xml");
    
    

       

       *****************输出的XML文档************************* 
        <?xml version="1.0" encoding="utf-8"?>
         <Student Id="101">
         <Name>dede</Name> 
         <Age>22</Age>
         <Gender>男</Gender>
         </Student>
       *******************************************************
    

     
       //读取XML文档

                XDocument XDoc2 = XDocument.Load(@"d:\caoyi.xml");
                //获取根节点
                XElement Root = XDoc2.Root;
                //输出根节点的Name,Value
                Console.WriteLine("Root.Name:{0}",Root.Name);//输出:Student
                Console.WriteLine("Root.Value:{0}",Root.Value);//输出:dede22男
                Console.WriteLine("Root.ToString:{0}",Root.ToString());//输出:节点下的整个XML
                //获取子元素
                XElement xEle1 =Root.Element("Name");//获取子元素组
                Console.WriteLine(xEle1.Value);//输出:dede
    
                foreach (XElement ele in Root.Elements()) 
                {
                    Console.WriteLine("{0}-{1}",ele.Name,ele.Value);
                }
    
    

      [3]、XML序列化
        把对象序列化存储在本地文件中,using System.Xml.Serialization;,对象标示[Serializable]
        实例:

          List<Person> perList = new List<Person>()
                {
                    new Person(){ Name="张三1",Age=19, Gender='男'},
                    new Person(){ Name="张三2",Age=19, Gender='男'},
                    new Person(){ Name="张三3",Age=19, Gender='男'},
                    new Person(){ Name="张三4",Age=19, Gender='男'},
                    new Person(){ Name="张三5",Age=19, Gender='男'},
                    new Person(){ Name="张三6",Age=19, Gender='男'},
                };
                using (FileStream file = 
                    new FileStream("xml.xml", FileMode.Create, FileAccess.Write))
                {
                    XmlSerializer ser = new XmlSerializer(typeof(List<Person>));
                    ser.Serialize(file, perList);
                }
    
  • 相关阅读:
    与众不同 windows phone (50)
    与众不同 windows phone (49)
    重新想象 Windows 8.1 Store Apps (93)
    重新想象 Windows 8.1 Store Apps 系列文章索引
    重新想象 Windows 8.1 Store Apps (92)
    重新想象 Windows 8.1 Store Apps (91)
    重新想象 Windows 8.1 Store Apps (90)
    重新想象 Windows 8.1 Store Apps (89)
    重新想象 Windows 8.1 Store Apps (88)
    重新想象 Windows 8.1 Store Apps (87)
  • 原文地址:https://www.cnblogs.com/dedeyi/p/2582005.html
Copyright © 2011-2022 走看看