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);
                }
    
  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/dedeyi/p/2582005.html
Copyright © 2011-2022 走看看