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

然后师傅鄙视一下我的智商,让我做个反序列化解析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. zzd 的割草机(Lawnmower)

    评测传送门 [题目描述] 已知花坛为一个 n * m 的矩形,草只会长在某些个格子上,zzd 有一个割草机,一开始,zzd 站在(1,1)处,面向(1,m)(面向右).每次 zzd 有两个选择(耗费一 ...

  2. “榕树下·那年”移动app ( hybrid ) 开发总结

        榕树下网站本身的技术人员并不多,所以app开发的任务就到了母公司盛大文学这边.       盛大文学无线业务中心负责这次具体开发任务.       一如既往的,开发的情况是:时间紧,任务重,人 ...

  3. mysql 增加字段脚本,以及删除主键约束的脚本,存储过程

    //增加一个库下面所有表的row_id和其他9个字段的存过 DELIMITER $$ USE `erptest`$$ DROP PROCEDURE IF EXISTS `UPTABLE`$$ CREA ...

  4. javade多任务处理之Executors框架(线程池)实现的内置几种方式与两种基本自定义方式

    一 Executors框架(线程池) 主要是解决开发人员进行线程的有效控制,原理可以看jdk源码,主要是由java.uitl.concurrent.ThreadPoolExecutor类实现的,这里只 ...

  5. jq 判断鼠标滚动上下

    $(document).on("mousewheel DOMMouseScroll", function (e) { var delta = (e.originalEvent.wh ...

  6. Shell-修改MySQL默认root密码

    Code: mysqltmppwd=`cat /tmp/.mysql_secret | cut -b 87-102` mysqladmin -u root -p${mysqltmppwd} passw ...

  7. 【HASPDOG】Communication error

    靠,防火墙没关,关了防火墙生成文件成功

  8. 转 Java的 BigDecimal类型比较大小

    这个类是java里精确计算的类 1.比较对象是否相等,一般的对象用equals,但是BigDecimal比较特殊,举个例子 BigDecimal a = new BigDecimal.valueOf( ...

  9. ASP.net-空白页的问题

    protected void Application_Error(object sender, EventArgs e)         {             ILog log = LogMan ...

  10. Qt软件打包发布(QT5.4.1(msvc2013_64_opengl),Win7 64bit)

    环境:QT5.4.1(msvc2013_64_opengl),Win7 64bit 编译方式 Qt开发的程序发布的时候经常采用两种方式:1)静态编译,可生成单一的可执行文件:2)动态编译,需同时附上需 ...