XML反序列化出错,XML 文档(2, 2)中有错误
XML转换为实体类的错误处理方案
一.错误描述:
- XML反序列化出错,XML 文档(2, 2)中有错误
二.解决方案:
- 在实体类的字段要加上XmlElement属性
三.具体实现:
1.XML文档
<EVENT_INSTANCE>
<EventType>ALTER_TABLE</EventType>
<PostTime>2015-08-04T10:21:14.670</PostTime>
<SPID>175</SPID>
<ServerName>E6SER14</ServerName>
<LoginName>sa</LoginName>
<UserName>dbo</UserName>
<DatabaseName>E6ETms</DatabaseName>
<SchemaName>ETms</SchemaName>
<ObjectName>Driver</ObjectName>
<ObjectType>TABLE</ObjectType>
<AlterTableActionList>
<Drop>
<Constraints>
<Name>DF_Driver_DriverID</Name>
</Constraints>
</Drop>
</AlterTableActionList>
<TSQLCommand>
<SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON" ANSI_PADDING="ON" QUOTED_IDENTIFIER="ON" ENCRYPTED="FALSE" />
<CommandText>ALTER TABLE ETms.Driver
DROP CONSTRAINT DF_Driver_DriverID
</CommandText>
</TSQLCommand>
</EVENT_INSTANCE>
2.目标实体对象
[XmlRoot(ElementName = "EVENT_INSTANCE")]
[Serializable]
public class EventModel
{
[XmlElement(ElementName = "EventType")]
public string EventType { set; get; }
[XmlElement(ElementName = "PostTime")]
public string PostTime { set; get; }
[XmlElement(ElementName = "SPID")]
public string Spid { set; get; }
[XmlElement(ElementName = "ServerName")]
public string ServerName { set; get; }
[XmlElement(ElementName = "UserName")]
public string UserName { set; get; }
[XmlElement(ElementName = "DatabaseName")]
public string DatabaseName { set; get; }
[XmlElement(ElementName = "SchemaName")]
public string SchemaName { set; get; }
[XmlElement(ElementName = "ObjectName")]
public string ObjectName { set; get; }
[XmlElement(ElementName = "ObjectType")]
public string ObjectType { set; get; }
[XmlElement(ElementName = "TargetObjectName")]
public string TargetObjectName { set; get; }
[XmlElement(ElementName = "TargetObjectType")]
public string TargetObjectType { set; get; }
[XmlElement(ElementName = "PropertyName")]
public string PropertyName { set; get; }
[XmlElement(ElementName = "PropertyValue")]
public string PropertyValue { set; get; }
[XmlElement(ElementName = "Parameters")]
public Parameters Parameters { get; set; }
[XmlElement(ElementName = "TSQLCommand")]
public TsqlCommand TsqlCommand { get; set; }
}
public class TsqlCommand
{
[XmlElement(ElementName = "CommandText")]
public string CommandText { set; get; }
[XmlElement(ElementName = "SetOptions")]
public string SetOptions { set; get; }
}
public class Parameters
{
[XmlElement("Param")]
public List<string> ParamContent { get; set; }
}
3.XML转实体类测试
//xmlStr 是xml字符串 ;type是要转换目标实体的类型 【typeof (EventModel)】;
public static object DeserializeFromXml(string xmlStr, Type type)
{
try
{
using (StringReader sr = new StringReader(xmlStr))
{
XmlSerializer xs = new XmlSerializer(type);
return xs.Deserialize(sr);
}
}
catch (Exception ex)
{
throw (ex);
}
}
XML反序列化出错,XML 文档(2, 2)中有错误的更多相关文章
- 关于"XML 文档(2, 2)中有错误:不应有 <xml xmlns=''>"错误
XML文件名 <?xml version="1.0" encoding="utf-8"?> <Config xmlns:xsi="h ...
- c# Net XML文档(2,2)中有错误
错误如图所示: xml转实体,需求很简单,度娘找了几个方法试了下,转换代码仔细看了看 没毛病啊 但是 就是提示 XML文档(2,2)中有错误,百度搜索了一大会 没解决方案,仔细分析了一下, 最后发现 ...
- XML 文档(1, 2)中有错误:不应有 <xml xmlns=''>
症状 用XmlSerializer进行xml反序列化的时候,程序报错: 不应有 <xml xmlns=''>. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息, ...
- C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
Oracle 远程访问配置 服务端配置 如果不想自己写,可以通过 Net Manager 来配置. 以下配置文件中的 localhost 改为 ip 地址,否则,远程不能访问. 1.网络监听配置 ...
- xml和xsd架构文档相关知识
1.使用架构(XSD)验证XML文件 2.使用自动生成工具: 工具目录:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4. ...
- poi 读取使用 Strict Open XML 保存的 excel 文档
poi 读取使用 Strict Open XML 保存的 excel 文档 某项目有一个功能需要读取 excel 报表内容,使用poi读取时报错: 具体错误为: org.apache.poi.POIX ...
- Mongodb:修改文档结构后出现错误:Element '***' does not match any field or property of class ***.
Mongodb:修改文档结构后出现错误:Element '***' does not match any field or property of class ***. Mongodb是一种面向文档的 ...
- WebAPI使用多个xml文件生成帮助文档
一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet.WebApi.HelpPage)可以根据注释生成帮助文档,查看代码实现会发现是基于解析项目生成的xm ...
随机推荐
- 用JavaScript写的动态表格
实现的功能有Table表格添加,删除.输入,删除的全选,单行删除. HTML代码部分 <body> <form> <table border="1" ...
- node-webkit学习(2)基本结构和配置
node-webkit学习(2)基本结构和配置 文/玄魂 目录 node webkit学习(2)基本结构和配置 前言 2.1 基本程序结构 2.2 package.json 2.2.1 必须的配置 ...
- 改变PowerDesigner数据模型字体大小
一 改变左侧菜单字体大小Tools----->General------->Fonts-------->根据item选项的不同改变字体的大小 二 改变数据模型Table的字体大小To ...
- 【转】 js数组 Array 交集 并集 差集 去重
原文:http://blog.csdn.net/ma_jiang/article/details/52672762 最劲项目需要用到js数组去重和交集的一些运算,我的数组元素个数可能到达1000以上, ...
- spring cloud学习(三) 断路器
在Spring Cloud中使用了Hystrix 来实现断路器的功能.Hystrix是Netflix开源的微服务框架套件之一,该框架目标在于通过控制那些访问远程系统.服务和第三方库的节点,从而对延迟和 ...
- Java - 初识Java
Java是一种跨平台的面向对象的程序设计语言. 区分大小写: 标点符号为英文: 强类型语言,在Java中存储的数据,必须在编译时确定其类型: Java版本 Java按应用范围分为3个版本,即Java ...
- [原创]Chorme密码读取工具\Firefox密码读取工具
工具: getBrowserPWD编译: VC作者: K8哥哥博客: http://qqhack8.blog.163.com发布: 2017/11/24 16:16:17 简介: 有时为了方便我们会让 ...
- Python 模块 和 包
模块 os模块 路径拼接 os.path.join
- python多线程-Semaphore(信号对象)
Semaphore(value=1) Semaphore对象内部管理一个计数器,该计数器由每个acquire()调用递减,并由每个release()调用递增.计数器永远不会低于零,当acquire() ...
- Linux下安装Nginx详细图解教程 (nginx-1.2.6)
什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...