反序列化XML-对于无符号字节来说,值太大或太小
本文关键字:XML- 无符号 字节 反序列化 | 更新日期: 2023-09-27 18:26:23
我正在使用SagePay的API下载交易数据。调用的结果给了我一个XML字符串,然后我将其反序列化并存储在类中。
每次调用最多检索50条记录,我在给定的datetime
范围内进行多次调用,直到检索到所有记录。这对第一个X调用来说很好,但后来我得到了一个错误:
System.Xml.dll 中发生"System.InvalidOperationException"类型的未处理异常
附加信息:XML文档(1141)中存在错误。
内部异常:{值对于无符号字节来说太大或太小。}
XML document (1, 141).
中的值并不总是在每次尝试时保持不变。如果我看看这个位置上的角色,我看不出有什么错。
在该示例中,字符141是";t〃;在<totalrows>
:中
<?xml version='"1.0'" encoding='"ISO-8859-1'"?><vspaccess><errorcode>0000</errorcode><transactions><startrow>251</startrow><endrow>300</endrow><totalrows>16684</totalrows>
251的<startrow>
显示,在这个出错的调用之前已经进行了5次成功调用。
反序列化代码:
XmlSerializer serializer = new XmlSerializer(typeof(vspaccess));
StringReader rdr = new StringReader(xmlDoc.InnerXml);
vspaccess sageTransactions = (vspaccess)serializer.Deserialize(rdr);
vspaccess
是VS2013(粘贴特殊)生成的类
我错过了什么?
我显然不能发布所有的XML,因为它是实时事务信息,但如果我错过了任何需要的信息,请告诉我
读取错误。无符号字节的最大大小是255,所以300的值太大了。
16684年也太大了。不要挂在错误报告的列号上。查看错误消息和您正在加载的内容。