笔记:xml序列化

/// <summary>
        /// xml序列化
        /// </summary>
        /// <param name="root"></param>
        /// <param name="dic"></param>
        /// <returns></returns>

        private static XElement XmlSerialize(string root,Dictionary<string, object> dic)
{ XElement el = new XElement(root,
dic.Select(kv => new XElement(kv.Key, kv.Value)));
return el;
} private static List<XElement> XmlSerialize(Dictionary<string, object> dic)
{
List<XElement> list = new List<XElement>();
foreach (var item in dic)
{
list.Add(new XElement(item.Key, item.Value));
}
return list;
}

序列化使用示例

Dictionary<string, object> apigDic = new Dictionary<string, object>();

Dictionary<string, object> paramDic= new Dictionary<string, object>();

Dictionary<string, object> transDic= new Dictionary<string, object>();

apigDic.Add("INFO", XmlSerialize(paramDic));
apigDic.Add("TRANS", XmlSerialize(transDic));
string xmlStr = XmlSerialize("APIG",apigDic).ToString();

反序列化:

private static Dictionary<string, object> XmlDeSerialize(string xml)
{
XElement rootElement;
try
{
rootElement = XElement.Parse(xml);
}
catch (Exception)
{
return null;
} Dictionary<string, object> dict = new Dictionary<string, object>();
foreach (var el in rootElement.Elements())
{ var el2=XmlDeSerialize(el.ToString());
if (el2 == null || el2.Count==)
dict.Add(el.Name.LocalName, el.Value);
else
dict.Add(el.Name.LocalName, el2);
}
return dict;
}

【C#】【对象转XML】xml序列化的更多相关文章

  1. 复杂 XML 的 序列化 反序列化

    已知.xml(再此命名default.xml)文件,请将其反序列化到一个实例对象. <?xml version="1.0" encoding="utf-8" ...

  2. 通过XmlSerializer 实现XML的序列化与反序列化

    通过XmlSerializer 我们可以十分简单的将Model与XML进行转换 官文在点这里 帮助类 using System; using System.Text; using System.Xml ...

  3. WebApi2官网学习记录---JSON与XML的序列化

    JSON序列化: WebAPI的默认序列库使用的是Json.NET,可以在Globally中配置使用DataContractJsonSerializer 进行序列化 protected void Ap ...

  4. XML的序列化和反序列化 详细介绍

    为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...

  5. windows phone8.1:Xml,Json序列化和反序列化

    原文:windows phone8.1:Xml,Json序列化和反序列化 小梦本例主要实现以下四点内容: 将Car对象序列化为xml 将Car对象序列化为Json 将xml反序列化为Car对象 将js ...

  6. XML的序列化与反序列化

    开发时会把数据持久化成xml格式,当然可以用xmlwriter来实现,不过感觉不方便,而且很繁琐.推荐使用直接序列化.反序列化对象的方法来处理. 直接上代码: public static class ...

  7. C#实现复杂XML的序列化与反序列化

    已知.xml(再此命名default.xml)文件,请将其反序列化到一个实例对象. Default.XML文件如下: <?xml version="1.0" encoding ...

  8. C#对象序列化成XML,以及自定义标签名

    C#对象序列化操作: public class XMLHelper { /// <summary> /// 对象序列化成 XML String /// </summary> p ...

  9. (转)C# Xml进行序列化与反序列化

    ---------------------------------------------------------------文章1---------------------------------- ...

  10. C#.net XML的序列化与反序列化

    /// <summary> /// 将一个对象序列化为XML字符串 /// </summary> /// <param name="o">要序列 ...

随机推荐

  1. elasticsearch数据备份与sshfs建立共享文件

    1.背景: 最近公司为了适应业务的发展,利用elasticsearch搜索引擎搭建了两个节点.为了防止数据丢失的特殊情况,需要定时做数据备份,而由于elasticsearch为两个节点分别在不同的服务 ...

  2. HTTP笔记1

    传输层:提供进程地址 TCP:传输控制协议,面向连接的协议:通信前需要建立虚拟链路:结束后拆除链路.端口号:0-65535 UDP:用户报文协议,无连接的协议.端口号:0-65535 IANA(互联网 ...

  3. 在windows+eclipse+git遇到的未修改文件被标记为已修改的问题

    最近遇到2个具体的问题: 1.我们有个工程里面有几个外部jar包,这几个jar包经常会更新,更新的时候如果是在eclipse中执行的,由于windows文件机制,所以会报错无法覆盖这几个jar包.虽然 ...

  4. Linux基础命令---top显示进程信息

    top top指令用来显示Linux的进程信息,这是一个动态显示的过程.top提供运行系统的动态实时视图.它可以显示系统摘要信息以及当前由Linux内核管理的任务列表.所显示的系统摘要信息的类型以及为 ...

  5. IP通信基础学习第三周(下)

    TTL的最值是255. 数据部分不参与检验和的计算. 接收端的结果若为0,则保留:否则,会丢弃该数据报. IP数据报选项字段是可选的,主要用于网络测试和调试. IP辅助协议ICMP的消息类型有错误消息 ...

  6. Oracle的问题的解决

    关于数据库的数据的导入导出       1.建数据库 修改密码的有效天数为无限期.       2.建表空间       3.建用户 导数据之前要建用户 要登进去试试 如themis_yw themi ...

  7. domain

    babibobucecicudadedidufafugeguhehujijukakekulalelilumimomunapapipopuqiqurerirusasesisutatetituwawowu ...

  8. linux目录结构特点

    #####linux目录结构特点一切从根开始linx中每个设备可以挂载在任何目录上面磁盘/设备/分区没有挂载 无法使用 举例-linux下面使用光盘###1.把光盘放入到光驱中 ###2.linux中 ...

  9. gitlab备份

    #!/bin/bash backup_date=`date "+%Y_%m_%d"` delete_date=`date +%Y_%m_%d -d "7 days ago ...

  10. CTF大赛学习第一天!!!(学习中)