zoukankan      html  css  js  c++  java
  • 【C#】【Demo】xml序列化,对象转XML

    笔记: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;
            }
    View Code

    序列化使用示例

     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==0)
                        dict.Add(el.Name.LocalName, el.Value);
                    else
                        dict.Add(el.Name.LocalName, el2);
                }
                return dict;
            }
    View Code
  • 相关阅读:
    Python [Leetcode 350]Intersection of Two Arrays II
    jade学习
    pageX、clientX、screenX、offsetX、layerX、x
    AngularJS--转载
    AngularJS
    超级强大的SVG动画详解
    javascript event对象的clientX,offsetX,screenX,pageX区别
    console的调试方法
    javascript--函数参数与闭包--详解
    如何把你的图标转换成web字体
  • 原文地址:https://www.cnblogs.com/lanofsky/p/10644454.html
Copyright © 2011-2022 走看看