xml 转换成对象(采用反射机制对对对象属性赋值)
/// <summary>
/// 采用反射机制对对对象属性赋值
/// </summary>
/// <param name="node"></param>
/// <param name="P"></param>
public static void ReflexValue(XmlNode Nodes, object obj)
{
XmlNodeList nodeList = Nodes.ChildNodes;
foreach (XmlNode node in nodeList)
{ string filedName = node.Name.ToUpper();
try
{
//取到属性
PropertyInfo property = obj.GetType().GetProperty(filedName);
var valtype = property.PropertyType;
if (valtype.IsGenericType && valtype.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))//判断convertsionType是否为nullable泛型类
{
//如果type为nullable类,声明一个NullableConverter类,该类提供从Nullable类到基础基元类型的转换
System.ComponentModel.NullableConverter nullableConverter = new System.ComponentModel.NullableConverter(valtype);
//将type转换为nullable对的基础基元类型
valtype = nullableConverter.UnderlyingType;
}
var val = node.InnerText;
//decimal dl = 0;
DateTime dt;
//if (valtype.Name == "Decimal" || valtype.Name == "Single")
//{
// if (decimal.TryParse(val, out dl))
// val = dl.ToString();
//}
//else if (valtype.Name == "DateTime")
//{
// if (DateTime.TryParse(val, out dt))
// val = dt.ToString();
// else
// {
// val = DateTime.Now.ToString();
// }
//}
if (valtype.Name == "DateTime")
{ if (DateTime.TryParseExact(val, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None, out dt))
val = dt.ToString();
else
{
val = DateTime.Now.ToString();
}
}
if (valtype.Name != "String" && val == "")
property.SetValue(obj, null);
else
property.SetValue(obj, Convert.ChangeType(val, valtype), null);
}
catch (Exception ex)
{
Common.WriteExceptionLog(ex);
}
}
}
xml 转换成对象(采用反射机制对对对象属性赋值)的更多相关文章
- jQuery、JS读取xml文件里的内容(JS先通过document.implementation.createDocument方法将xml转换成document对象,jQuery将读取到的xml转成table)
xml文件:test.xml <?xml version="1.0"?> <note> <to>George</to> <fr ...
- Java基础 -- 深入理解Java类型信息(Class对象)与反射机制
一 RTTI概念 认识Claa对象之前,先来了解一个概念,RTTI(Run-Time Type Identification)运行时类型识别,对于这个词一直是 C++ 中的概念,至于Java中出现RT ...
- 如何在ASP.NET中用C#将XML转换成JSON
本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方式来 ...
- 如何在ASP.NET中用C#将XML转换成JSON 【转】
本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方 ...
- C#将XML转换成JSON转换XML
原文:C#将XML转换成JSON转换XML using System; using System.Collections.Generic; using System.Linq; using Syste ...
- C#将XML转换成JSON 使用 JavaScript 将 XML 转成 JSON
如何在ASP.NET中用C#将XML转换成JSON [JavaScript]代码 // Changes XML to JSON function xmlToJson(xml) { // Create ...
- xml转换成map
import java.io.IOException;import java.io.StringReader;import java.util.ArrayList;import java.util.H ...
- Dom4j把xml转换成Map(固定格式)
/** * 可解析list * * @param fileName * @return * @throws Exception */ @SuppressWarnings("unchecked ...
- Dom4j把xml转换成Map(非固定格式)
将xml转换成Map,能够应对不用结构的xml,而不是只针对固定格式的xml.转换规则:1.主要是Map与List的互相嵌套2.同名称的节点会被装进List 示例: import java.util. ...
随机推荐
- Array.sort()
sort() : 是对数组的元素进行排序,并返回一个数组.默认排序方式是根据字符串的Unicode码表的码点. 由于取决于具体实现,所以无法保证它的时间和空间复杂度. arr.sort(compare ...
- abaqus python库变强变大233333333333333
有没有小伙伴想在 至于怎么安装pip 度小娘一位大神提供了办法 https://jingyan.baidu.com/article/7e4409533f32092fc0e2ef24.html 如有需 ...
- java中next()和nextLine()的区别
首先,next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后 ...
- 我对CSS的认识
花费了一段时间,终于对HTML有了一定的了解,随后又开始进行CSS的战斗感觉自己学起来有一点吃力.我就简单的讲一下我所学到的吧! CSS的概述. 层叠式样式表,用于控制网页样式并允许将样式信息并允许将 ...
- hql和sql的一些区别
日期格式化查询的区别: selectSql.append(" AND DATE_FORMAT(o.createDate,\'%Y-%m-%d\') = :createDate"); ...
- PY序
Python实现机器学习依赖于两个类库——SciPy和scikit-learn 一)SciPy SciPy是数学运算的基本类库,在机器学习的过程中,主要运用NumPy.Matplotlib和Panda ...
- Netty 工具类 —— HashedWheelTimer 讲解
一.前言 首先有一篇超时任务的实战分析,文章简短精炼明了,阐述了,为什么要用HashedWheelTimer. https://chuansongme.com/n/1650380646616 看完后, ...
- Developing avb
ai automake ai libtool ai pkg-config autogen ai libgstreamer1.0-0 ai libgstreamer1.0-dev ai chec ...
- 如何实现从Java入门到服务端项目开发的进阶?
对于打算入门或者刚刚入门学习Java的人来说,刚开始接触这门学科,往往会觉得不知所措,也会觉得很迷茫.结合前人经验,就从入门到进阶对于Java的学习而言,应该对于学习时间.目标和内容规划有一个清晰的定 ...
- Go 变量声明后若不赋值,各类型默认值
Go 变量声明后若不赋值,各类型默认值(数字类型默认为 0,其他类型为 nil): 数据类型 默认值 bool false string 空字符串 int 0 float32 0 float64 0 ...