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 ...
随机推荐
- Unity 3(二):Unity在AOP方面的应用
本文关注以下方面(环境为VS2012..Net Framework 4.5以及Unity 3): AOP简介: Interception using Unity示例 配置文件示例 一.AOP简介 AO ...
- SolrJ查询条件组合查询实现——(十六)
带查询条件的实现原理: 查询按钮被包在一个大表单,表单还有三个隐藏域,一个商品筛选,一个 价格,一个排序,每次点击查询时候清空三个隐藏域,就带着一个大条件去查询;点击下面的筛选条件时,给隐藏域的筛选条 ...
- solr配置中文分词器——(十二)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqcAAAGzCAIAAACdKClDAAAgAElEQVR4nOydd5gUxdbGx5xASZKXLB
- OpenStack Benchmark - Rally
作为以基于OpenStack的云平台的基准测试工具 -- Rally, 其功能不仅是测试云的性能&&稳定性, 还可以安装OpenStack,以及以良好的表现形式(web 页面)展现测试 ...
- ibm x3550m4 开启cpu高性能模式
1.必须进bios里调整,和调整超线程一样,重启服务器按F1进bios界面,选择system settings 2.选择最大性能模式:Operating Modes>Choose Operati ...
- MySQL基础 - 数据库备份
出于安全考虑,数据库备份是必不可少的,毕竟对于互联网公司数据才是价值的源泉~ 距离mysql账号为icebug,密码为icebug_passwd, 数据库为icebug_db mysqldump -u ...
- Java事务管理之Hibernate
环境与版本 Hibernate 版本:Hibernate 4.2.2 (下载后的文件名为hibernate-release-4.2.2.Final.zip,解压目录hibernate-release- ...
- 最邻近规则分类KNN算法
例子: 求未知电影属于什么类型: 算法介绍: 步骤: 为了判断未知实例的类别,以所有已知类别的实例作为参照 选择参数K 计算未知实例与所有已知实例的距离 选择最近K个已 ...
- WordPress引入css/js两种方法
WordPress引入css/js 是我们制作主题时首先面对的一个难点,任何一款主题都要加载自己的css,js,甚至很有可能还需要加载Jquery文件,网上方法特多,说法不一,我们今天借鉴wordpr ...
- Dev控件删除按钮的两种方式
测试版本15.2.10:在Dev控件中删除按钮空间有两种方式:1.鼠标右键出现Delete选项,这种删除是不完全的删除,只是删除了按钮的显示,实际上按钮还是存在于代码中的.2.用键盘上的Delete键 ...