C# 序列化简单格式XML
问师傅反序列化和序列化到底是什么,
然后师傅鄙视一下我的智商,让我做个反序列化解析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的更多相关文章
- XML系列之--对电文格式XML的简单操作(三)
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- C实现简单的xml格式文件
今天在工作中遇到了一个需要处理xml格式的字符串,需求是修改某个固定的value值,并且还要把这个xml的key和value按照原本的格式在推送回去. 如果使用库,就显得太臃肿了,就想写个简单的dem ...
- 一个简单的XML与数组之间的转换
xml是网络使用最多的数据交换格式,所以,不掌握怎么操作它,又有蛋疼的了. php中可以操作xml的类/函数很多,个人认为最简单的是SimpleXMLElement这个类,它的使用就跟其名字一样:简单 ...
- .net下二进制序列化的格式分析[转]
.net下二进制序列化的格式分析[转] -- 综合应用 (http://www.Host01.Com/article/Net/00020003/) --- .net下二进制序列化的格式分析 (http ...
- 001-RESTful服务最佳实践-RestFul准则、HTTP动词表示含义、合理的资源命名、响应格式XML和JSON
一.概述 因为REST是一种架构风格而不是严格的标准,所以它可以灵活地实现.由于这种灵活性和结构自由度,对设计最佳实践也有很大的差异. API的方向是从应用程序开发人员的角度考虑设计选择. 幂等性 不 ...
- [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类
[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类 本节导读:本节主要介绍通过序列 ...
- 序列化对象为xml字符串
/// <summary> /// 序列化对象为xml字符串 /// </summary> /// <param name="obj" ...
- 使用XML序列化器生成XML文件和利用pull解析XML文件
首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...
- spring mvc3中JACKSON序列化日期格式的问题 - 墙头草的Java - BlogJava
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
随机推荐
- Django连接mysql常见错误
1045, "Access denied for user 'root'@'localhost' (using password: YES)" 数据库的密码或用户名不对,查看set ...
- js模拟自动点击事件
1.直接上代码很直观 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- Python练习-从小就背不下来的99乘法表
心血来潮,灵机一动,反正就是无聊的做了一个很简单的小玩意: for i in range(1,10):#让i 1-9 循环9次 print("\n")#每循环一次进行一次换行 fo ...
- 《区块链100问》第85集:资产代币化之对标美元USDT
USDT是Tether公司推出的对标美元(USD)的代币Tether USD.1USDT=1美元,用户可以随时使用USDT与USD进行1:1兑换.Tether公司执行1:1准备金保证制度,即每个USD ...
- 【轨迹动画css】不规则轨迹动画css教程,弹球,客服广告悬浮层都可以用
小demo如下,可更具自己需求修改: css @keyframes animX{ 0% {left: 0px;} 100% {left: 500px;} } @keyframes animY{ 0% ...
- python基础--os模块和sys模块
os模块提供对操作系统进行调用的接口 # -*- coding:utf-8 -*-__author__ = 'shisanjun' import os print(os.getcwd())#获取当前工 ...
- Nginx - buffer缓冲区部分
目录- 1. 前言- 2. 指令- 3. 原理及总结 1. 前言 关于缓冲,主要是合理设置缓冲区大小,尽量避免缓冲到硬盘 2. 指令 proxy_buffering 说明:proxy_bufferin ...
- 浅谈js变量作用域
变量的作用域也是前端面试题常考的一个问题,掌握下面几个规律可以帮你更好的理解js的作用域. 1.作用域优先级遵循就近原则,函数内部的作用域优先级大于外部 var a=456; var b=111; f ...
- IOS使用命令行打包
1.安装证书 develop:调试证书,包含调试信息 安装时需要证书已加入设备UDID或是越狱设备才能安装. distribution:正式证书,发布到appstore所用,屏蔽了调试信息,要想测试安 ...
- 20165203《Java程序设计》第七周Java学习总结
20165203<Java程序设计>第七周Java学习总结 教材学习内容总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称MySQL,是世 ...