C#中使用XmlSerializer对字符串进行反序列化时,提示:字符串“2020-07-31 09:29:16”不是有效的AllXsd值。

原因:

  先说下为什么会出现这样的错误,由于XML序列化为对象时,时间格式中是不允许出现空格的。

解决方法:

  将空格使用T代替,改为:2020-07-31T09:29:16

或者:Xml反序列化时,时间格式的数据会出现问题。解决办法:

public string GetObjectXml(string sql, string conn, string className)
{
var objXml = new StringBuilder();
objXml.Append("<?xml version=\"1.0\" encoding=\"utf-16\"?>").Append(Environment.NewLine);
objXml.Append(string.Format("<{0} xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">", className)).Append(Environment.NewLine);
DataSet ds = DbOperater.SelectDataSet(sql, conn);
DataTable dt = ds.Tables[0];
for (int i = 0; i < dt.Columns.Count; i++)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
string val = dt.Rows[j][i].ToString();
var reg = new Regex(@"(?<Year>(?:\d{4}))[-|/](?<Month>\d{1,2})[-|/](?<Day>\d{1,2}) (?<Hour>\d{1,2}):(?<Min>\d{1,2}):(?<Sed>\d{1,2})");
if (reg.IsMatch(val))
{
DateTime date = DateTime.Parse(val);
val = date.ToUniversalTime().ToString("s");
}
objXml.Append(string.Format("<{0}>{1}</{0}>", dt.Columns[i].ColumnName, val)).Append(Environment.NewLine); ;
}
}
objXml.Append(string.Format("</{0}>", className));
return objXml.ToString();
}

参考链接:

1、XmlSerializer反序列化失败:时间字符串不是有效的AllXsd值

2、字符串“2013/4/19 14:33:26”不是有效的 AllXsd 值

3、XmlSerializer: The string '' is not a valid AllXsd value

C# – XmlSerializer:字符串“2020-07-31 09:29:16”不是有效的 AllXsd 值。的更多相关文章

  1. 如何在CentOS 7 / Fedora 31/30/29上安装ELK Stack

    原文地址:https://computingforgeeks.com/how-to-install-elk-stack-on-centos-fedora/ 原作者: Josphat Mutai 译者: ...

  2. http://www.blogjava.net/xzclog/archive/2011/09/29/359789.html

    http://www.blogjava.net/xzclog/archive/2011/09/29/359789.html http://bbs.csdn.net/topics/380187593

  3. http://www.cnblogs.com/ycxyyzw/archive/2012/07/31/2616951.html

    http://www.cnblogs.com/ycxyyzw/archive/2012/07/31/2616951.html

  4. <2013 07 31> 没有必然的理由

    <2013 07 31> 没有必然的理由 没有必然的理由 人类从野蛮走向文明 也可能,从野蛮走向更野蛮 没有必然的理由 人群从疯狂走向理智 也可能,从疯狂走向更疯狂 没有必然的理由 你我从 ...

  5. Java-Runoob-高级教程-实例-字符串:07. Java 实例 - 字符串分割

    ylbtech-Java-Runoob-高级教程-实例-字符串:07. Java 实例 - 字符串分割 1.返回顶部 1. Java 实例 - 字符串分割  Java 实例 以下实例使用了 split ...

  6. agentzh 的 Nginx 教程(版本 2019.07.31)

    agentzh 的 Nginx 教程(版本 2019.07.31) agentzh 的 Nginx 教程(版本 2019.07.31) https://openresty.org/download/a ...

  7. JZOJ 2020.07.28【NOIP提高组】模拟

    2020.07.28[NOIP提高组]模拟 考试时状态不好,暴力不想打 结束前勉勉强强骗点分 已经不想说什么了······ \(T1\) 复制&粘贴2 逆推答案,枚举 \(k\),分类讨论 \ ...

  8. [转]如何解决:Android中 Error generating final archive: Debug Certificate expired on 10/09/18 16:30 的错误

    本文转自:http://www.cnblogs.com/yyangblog/archive/2011/01/07/1929657.html 问题概述: 在导入一个app后提示如下错误: “Error ...

  9. pow函数(数学次方)在c语言的用法,两种编写方法实例( 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值)

    关于c语言里面pow函数,下面借鉴了某位博主的一篇文章: 头文件:#include <math.h> pow() 函数用来求 x 的 y 次幂(次方),x.y及函数值都是double型 , ...

  10. 2020.08.31 Unit 10(暂未完成)

    [重点短语] 01.at night 在晚上 02.in a more natural environment 在一个更加自然的环境中 03.all year round 一年到头,终年 04.be ...

随机推荐

  1. C++内存模型实践探索

    前言 C++对象模型是个常见.且复杂的话题,本文基于Itanium C++ ABI通过程序实践介绍了几种 简单C++继承 场景下对象模型,尤其是存在虚函数的场景,并通过图的方式直观表达内存布局.本文展 ...

  2. P3571 [POI2014] SUP-Supercomputer 题解

    P3571「POI2014」SUP-Supercomputer 题解 一道 "较" 水的黑题 (可一开始苦思冥想还是不会). 本蒟蒻的第一篇黑题题解,求赞. 题意简化 给定一棵 \ ...

  3. direasch目录扫描

    direasch目录扫描工具 安装: 1.github源码下载解压 使用 git 安装:(推荐git clone https://github.com/maurosoria/dirsearch.git ...

  4. Nuxt.js 应用中的 nitro:build:public-assets 事件钩子详解

    title: Nuxt.js 应用中的 nitro:build:public-assets 事件钩子详解 date: 2024/11/5 updated: 2024/11/5 author: cmdr ...

  5. setTimeout 的方式实现 setInteval

    setTimeout(function fn(){ setTimeout(fn,interval); },interval); 这个模式链式调用了setTimeout(),每次函数执行的时候都会创建一 ...

  6. vim粘贴文件格式不乱

    vim粘贴防止格式乱,配置以下命令然后在粘贴,即可~ :set paste

  7. Quartz集群增强版_01.集群及缺火处理(ClusterMisfireHandler)

    Quartz集群增强版_01.集群及缺火处理(ClusterMisfireHandler) 转载请著名出处 https://www.cnblogs.com/funnyzpc/p/18542452 主要 ...

  8. 在Keil中使用ST-LINK烧录STM32程序指南

    前言 之前玩STM32都是用J-LINK烧录程序,不仅便捷,而且烧录的速度比用串口快好多. 最近我接了几个32单片机的毕设单子,便买了几块C8T6的最小系统板用来开发.最初我还是用J-LINK烧录C8 ...

  9. 高性能计算-雅可比算法MPI通信优化(5)

    雅可比算法原理:如下图对方阵非边界元素求上下左右元素的均值,全部计算元素的数值计算完成后更新矩阵,进行下一次迭代. 测试目标:用MPI实现对8*8方阵雅可比算法迭代并行计算,用重复非阻塞的通信方式 # ...

  10. 成为Java GC专家系列(3) — 如何优化Java垃圾回收机制

    本文是成为Java GC专家系列文章的第三篇.在第一篇<成为JavaGC专家Part I - 深入浅出Java垃圾回收机制>中我们学习了不同GC算法的执行过程,GC是如何工作的,什么是新生 ...