问师傅反序列化和序列化到底是什么,

然后师傅鄙视一下我的智商,让我做个反序列化解析XML。

一边听着师傅在旁边跟女朋友打电话收到暴击伤害,一边写,搞了一个半小时。

XML文件:

 <?xml version="1.0" encoding="utf-8" ?>

 <PRODUCT>

 <SatelliteId>TERRA</SatelliteId>

 <SensorId>MODIS</SensorId>

 <ProductId>HAZ</ProductId>

 <!--Inversion Combine-->

 <ProductType>Inversion</ProductType>

 <!--输入参数为单或多个文件(文件以;间隔,NPP数据为文件夹)-->
<InputDataFile>/DPS/Data/xxx.hdf</InputDataFile> <InversionArgs> <!--参数列表--> <InversionArg name="" value=""/> </InversionArgs> <!--输出结果及日志文件目录--> <OutputDataFilePath>/DPS/Data/L2/PRD/</OutputDataFilePath> <OutputDataFileList> <OutputDataFile name="" value="Hxxx.hdf" /> <OutputDataFile name="" value="Hxx.hdf" /> <OutputDataFile name="" value="Hxxx.hdf"/> </OutputDataFileList> <LogInfoFile>xxxxx.log</LogInfoFile> </PRODUCT>

类与调用代码:

 using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Serialization; namespace ConsoleApplication1
{
[Serializable()]
public class PRODUCT
{
public PRODUCT() { }
public string SatelliteId { get; set; }
public string SensorId { get; set; }
public string ProductId { get; set; }
public string ProductType { get; set; }
public string InputDataFile { get; set; } [XmlArray("InversionArgs")]
[XmlArrayItem("InversionArg", typeof(namevlue))]
public List<namevlue> InversionArgs { get; set; }
public string OutputDataFilePath { get; set; } [XmlArray("OutputDataFileList")]
[XmlArrayItem("OutputDataFile", typeof(namevlue))]
public List<namevlue> OutputDataFileList { get; set; }
public string LogInfoFile { get; set; }
} [Serializable()]
public class namevlue
{
[XmlAttribute]
public string name { get; set; }
[XmlAttribute]
public string value { get; set; }
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("+++++开始+++++");
try
{
using (StreamReader sr = new StreamReader(@"D:\My CShirp soft\ConsoleApplication1\ConsoleApplication1\ProductPara.xml"))
{
XmlSerializer xmldes = new XmlSerializer(typeof(PRODUCT));
var re = xmldes.Deserialize(sr);
Console.WriteLine(re);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
Console.WriteLine("+++++结束+++++");
Console.Read();
}
}
}

C# 序列化简单格式XML的更多相关文章

  1. XML系列之--对电文格式XML的简单操作(三)

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

  2. C实现简单的xml格式文件

    今天在工作中遇到了一个需要处理xml格式的字符串,需求是修改某个固定的value值,并且还要把这个xml的key和value按照原本的格式在推送回去. 如果使用库,就显得太臃肿了,就想写个简单的dem ...

  3. 一个简单的XML与数组之间的转换

    xml是网络使用最多的数据交换格式,所以,不掌握怎么操作它,又有蛋疼的了. php中可以操作xml的类/函数很多,个人认为最简单的是SimpleXMLElement这个类,它的使用就跟其名字一样:简单 ...

  4. .net下二进制序列化的格式分析[转]

    .net下二进制序列化的格式分析[转] -- 综合应用 (http://www.Host01.Com/article/Net/00020003/) --- .net下二进制序列化的格式分析 (http ...

  5. 001-RESTful服务最佳实践-RestFul准则、HTTP动词表示含义、合理的资源命名、响应格式XML和JSON

    一.概述 因为REST是一种架构风格而不是严格的标准,所以它可以灵活地实现.由于这种灵活性和结构自由度,对设计最佳实践也有很大的差异. API的方向是从应用程序开发人员的角度考虑设计选择. 幂等性 不 ...

  6. [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类

    [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类 本节导读:本节主要介绍通过序列 ...

  7. 序列化对象为xml字符串

    /// <summary>    /// 序列化对象为xml字符串    /// </summary>    /// <param name="obj" ...

  8. 使用XML序列化器生成XML文件和利用pull解析XML文件

    首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...

  9. spring mvc3中JACKSON序列化日期格式的问题 - 墙头草的Java - BlogJava

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

随机推荐

  1. Django连接mysql常见错误

    1045, "Access denied for user 'root'@'localhost' (using password: YES)" 数据库的密码或用户名不对,查看set ...

  2. js模拟自动点击事件

    1.直接上代码很直观 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  3. Python练习-从小就背不下来的99乘法表

    心血来潮,灵机一动,反正就是无聊的做了一个很简单的小玩意: for i in range(1,10):#让i 1-9 循环9次 print("\n")#每循环一次进行一次换行 fo ...

  4. 《区块链100问》第85集:资产代币化之对标美元USDT

    USDT是Tether公司推出的对标美元(USD)的代币Tether USD.1USDT=1美元,用户可以随时使用USDT与USD进行1:1兑换.Tether公司执行1:1准备金保证制度,即每个USD ...

  5. 【轨迹动画css】不规则轨迹动画css教程,弹球,客服广告悬浮层都可以用

    小demo如下,可更具自己需求修改: css @keyframes animX{ 0% {left: 0px;} 100% {left: 500px;} } @keyframes animY{ 0% ...

  6. python基础--os模块和sys模块

    os模块提供对操作系统进行调用的接口 # -*- coding:utf-8 -*-__author__ = 'shisanjun' import os print(os.getcwd())#获取当前工 ...

  7. Nginx - buffer缓冲区部分

    目录- 1. 前言- 2. 指令- 3. 原理及总结 1. 前言 关于缓冲,主要是合理设置缓冲区大小,尽量避免缓冲到硬盘 2. 指令 proxy_buffering 说明:proxy_bufferin ...

  8. 浅谈js变量作用域

    变量的作用域也是前端面试题常考的一个问题,掌握下面几个规律可以帮你更好的理解js的作用域. 1.作用域优先级遵循就近原则,函数内部的作用域优先级大于外部 var a=456; var b=111; f ...

  9. IOS使用命令行打包

    1.安装证书 develop:调试证书,包含调试信息 安装时需要证书已加入设备UDID或是越狱设备才能安装. distribution:正式证书,发布到appstore所用,屏蔽了调试信息,要想测试安 ...

  10. 20165203《Java程序设计》第七周Java学习总结

    20165203<Java程序设计>第七周Java学习总结 教材学习内容总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称MySQL,是世 ...