博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xml转换为对象 微信接口
阅读量:6976 次
发布时间:2019-06-27

本文共 2058 字,大约阅读时间需要 6 分钟。

public sealed class XMLSerilizable    {        ///         /// XML转换为对象        ///         /// 
/// ///
public static T XMLToObject
(string xml) where T : new() { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNode root = doc.FirstChild; Dictionary
table = new Dictionary
(); foreach (XmlNode v in root.ChildNodes) { table.Add(v.Name, GetValue(v)); } return DicToObject
(table); //new RequestText(table); } ///
/// 字典类型转化为对象 /// ///
///
private static T DicToObject
(Dictionary
dic) where T : new() { var md = new T(); DicToObject(md, dic); return md; } ///
/// Dictionary填充对象 /// ///
///
private static void DicToObject(object md, System.Collections.IDictionary dic) { foreach (var filed in dic.Keys) { BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance; try { var value = dic[filed]; if (value is System.Collections.IDictionary) { Type ct = md.GetType().GetProperty(filed + "", flag).PropertyType; object o = Activator.CreateInstance(ct); DicToObject(o, value as System.Collections.IDictionary); md.GetType().GetProperty(filed + "", flag).SetValue(md, o, null); } else md.GetType().GetProperty(filed + "", flag).SetValue(md, value, null); } catch (Exception e) { } } // return md; } ///
/// 获得节点值 /// ///
///
private static object GetValue(XmlNode node) { if (node.HasChildNodes) { //
这种结构 node.ChildNodes.Count==1 if (node.ChildNodes.Count == 1 && node.ChildNodes[0].NodeType != XmlNodeType.Element) { return node.InnerText; } else { Dictionary
table = new Dictionary
(); foreach (XmlNode n in node.ChildNodes) { table.Add(n.Name, GetValue(n)); } return table; } } return node.InnerText; } }

 

转载于:https://www.cnblogs.com/GarsonZhang/p/6928298.html

你可能感兴趣的文章
关于JDK1.8 HashMap扩容部分源码分析
查看>>
Git使用手册【转】
查看>>
JSOUP如何POST只含JSON格式的数据
查看>>
LeetCode OJ:Generate Parentheses(括号生成)
查看>>
sql 各种格式
查看>>
学习javascript过程中的心得体会
查看>>
分布式文件系统之FastDFS
查看>>
Basic Tutorials of Redis(7) -Publish and Subscribe
查看>>
谈谈Circuit Breaker在.NET Core中的简单应用
查看>>
PyCharm IDE环境搭建
查看>>
HADOOP之PiG简介
查看>>
2017 多校6 String
查看>>
influxdb与传统数据库的比较
查看>>
滚动字幕
查看>>
Centos目录结构详细版
查看>>
MySQL 如何执行关联查询
查看>>
从硬币游戏学习敏捷开发
查看>>
2017 4月14日
查看>>
KMP
查看>>
CefSharp .net
查看>>