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);
       }

转自:http://www.cnblogs.com/dedeyi/archive/2012/07/08/2582005.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值