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

--------------------------

XmlDocument dom=new XmlDocument();
dom.LoadXml(字符串);
dom.save(文件名);

转载自:http://www.cnblogs.com/dedeyi/archive/2012/07/08/2582005.html

XML的解析和保存的更多相关文章

  1. 第四十六篇--解析和保存xml文件

    新建assets资源文件夹,右键app --> new --> Folder --> Assets Folder,将info.xml放入此文件夹下面. info.xml <?x ...

  2. 通过正则表达式实现简单xml文件解析

    这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...

  3. xml的解析与创建——bing到youdao导入文件的转换

    首先是为了解决一个问题:如何将必应单词本中记录的单词转入到有道词典中去.实际上,必应词典可以导出xml文件,但是该文件有道词典无法解析.这里涉及到xml的解析和创建了. 代码如下: import ja ...

  4. android基础知识13:AndroidManifest.xml文件解析

    注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...

  5. Android之AndroidManifest.xml文件解析

    转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...

  6. 玩转iOS开发 - JSON 和 Xml 数据解析

    前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...

  7. 03-IOSCore - XML及解析、Plist

    一.XML 可扩展标记语言 是什么?是一段有规范的字符串, 用在哪?用在任何地方 语法: * 结点Node <结点名 属性名="属性值"> 结点内容 </结点名& ...

  8. xml数据解析

    xml数据解析 在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.Kiss ...

  9. 类xml数据格式解析

    需要解析一种类xml的数据文件,数据格式1如下: <head> //文件头 <type>xtype</type> <condition> key1=va ...

随机推荐

  1. x01.Game.Main: 从零开始

    一切从零开始,一切皆有可能. 浅墨,90后,<逐梦之旅>深入浅出,堪比大师. 1.安装 DXSDK_June10.exe 或更新版本. 2.运行 vs2012,新建 VC Win32 空项 ...

  2. 3.Docker - 镜像管理

    一.使用容器生成镜像 1.进入容器,安装软件包(任意包) 1 2 3 4 5 6 7 bash-3.2# docker ps -a CONTAINER ID        IMAGE          ...

  3. 【转】Linux Mint 17.2 gedit中文乱码

    转自:linux mint 14 gedit 中文乱码 Mint默认没安装gconf-editor,搜了下,找到如下解决办法 在终端下执行语句: gconftool- --set --type=lis ...

  4. position:absolute/relative/fixed小结

    1.绝对定位:position:absolute; 当一个div块的位置被定义为绝对定位absolute时,也就意味着它失去了文档流的位置,后面的文档流会紧跟着补上来接替它的位置.如果上下左右的绝对偏 ...

  5. [Top-Down Approach]My First C/S Program [Python]

    These days I was learning from Computer Networking --A Top-Down Approach by Kurose Ross. I modified ...

  6. Jquery:小知识;

    Jquery:小知识: jQuery学习笔记(二):this相关问题及选择器   上一节的遗留问题,关于this的相关问题,先来解决一下. this的相关问题 this指代的是什么 这个应该是比较好理 ...

  7. using关键字背后的故事!

    using关键字的作用: 1:可以引入命名空间2:可以释放资源 *****不能使用using语句完全替换掉(try-catch-finally)语句(无法进行异常处理) 在出了using语句的{}后, ...

  8. http协议(三)几种数据传输方式

    说说http协议的一些特点: 1)无状态 http协议是一种自身不对请求和响应之间的通信状态进行保存的协议,即无状态协议. 这种设置的好处是:更快的处理更多的请求事务,确保协议的可伸缩性 不过随着we ...

  9. python设计模式1:导言

    <设计模式>一书总结了23个模式,依据各自的目的又被分为创建型模式(creational pattern).结构型模式(structural pattern)和行为型模式(behavior ...

  10. ASP.NET MVC读取XML并使用ViewData显示

    看到网上一个网友问及,无法获取XML某一个节点内容.下面Insus.NET在ASP.NET MVC环境下实现它. 先把XML文件放入App_Data目录,当然你可以放在自建目录中.打开看看它有几层,几 ...