C# XML反序列化解析成对象集合
时间:2021-09-07
本文章向大家介绍C# XML反序列化解析成对象集合,主要包括C# XML反序列化解析成对象集合使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.需要解析的XML字符串
string xmlStr = @"<Request> <BookedInfos> <BookedInfo> <CHARGECODE> 收费项编码 </CHARGECODE> <HISDEPTCODE> His科室代码 </HISDEPTCODE> <INQTY> 出库数量 </INQTY> </BookedInfo> <BookedInfo> <CHARGECODE> 收费项编码 </CHARGECODE> <HISDEPTCODE> His科室代码 </HISDEPTCODE> <INQTY> 出库数量 </INQTY> </BookedInfo> </BookedInfos> </Request>";
2.需要解析成的目标实体类
public class BookedInfo { public string CHARGECODE { get; set; } public string HISDEPTCODE { get; set; } public string INQTY { get; set; } }
3.解析的帮助方法
public static List<T> XmlUrlConvertModel<T>(string xmlStr, string nodename) where T : class, new() { List<T> ts = new List<T>(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlStr); XmlNodeList xmlNodeList = xmlDoc.SelectNodes(nodename); foreach (XmlNode xnls in xmlNodeList) { T t = new T(); if (xnls.Name.ToUpper() == typeof(T).Name.ToUpper()) { foreach (XmlNode xnl in xnls.ChildNodes) { System.Reflection.PropertyInfo[] propertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); foreach (System.Reflection.PropertyInfo pinfo in propertyInfo) { if (xnl.Name.ToUpper() == pinfo.Name.ToUpper()) { pinfo.SetValue(t, xnl.InnerText, null); break; } } } } ts.Add(t); } return ts; }
4.调用帮助方法
var ls = XmlUrlConvertModel<BookedInfo>(xmlStr, "Request/BookedInfos/BookedInfo");
5.结果
原文地址:https://www.cnblogs.com/HansZimmer/p/15238026.html
- 如何通过Remoting实现双向通信
- jenkins 入门教程(上)
- 让jQuery Tools Scrollable控件在Mobile Web里面支持resize功能
- CentOS6.5上golang环境配置
- 马斯克频发推文,或在揭示特斯拉明年大动作?
- yum安装出现No package nodejs available解决办法
- InfoPath中repeationg section动态填充数据
- CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins
- jenkins 入门教程(中)
- docker学习(1) 安装
- Ajax等待返回结果时,弹出一个友好的等待提示
- Facebook Like Button在IE上的bug
- CSS魔法堂:hasLayout原来是这样!
- jetty 9 嵌入式开发示例
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android编程实现使用Intent传输包含自定义类的ArrayList示例
- EditText实现输入限制和校验功能实例代码
- java零基础入门006~springboot实现多文件的上传(java多文件的上传)
- Android编程实现随机生成颜色的方法示例
- Android中将Bitmap对象以PNG格式保存在内部存储中的方法
- python入门012~使用python3爬取网络图片并保存到本地
- java入门015~springboot2整合mybatis,轻松实现mysql数据的增删改查
- 详解Android activity与fragment之间的通信交互
- Android App内监听截图加二维码功能代码
- 微信小程序登录与注册验证码倒计时的效果实现
- Android仿微信朋友圈全文、收起功能的实例代码
- TextView实现图文混合编排的方法
- 小程序云函数调用http或https请求外部数据
- 详解Android中图片的三级缓存及实例
- 借助云开发实现小程序的登陆注册功能