【发布时间】:2014-08-15 22:39:28
【问题描述】:
我在尝试反序列化 XML 时遇到了一个独特的问题。
方法如下:
XmlSerializer serialize = new XmlSerializer(typeof(APIFile));
using(FileStream stream = new FileStream(file, FileMode.Open))
using(XmlReader reader= XmlReader.Create(stream))
{
APIFile model = serialize.Deserialize(reader) as APIFile;
Console.WriteLine(model.lSubmission.Select(m => m.Id));
}
所以当代码到达model 时,我会收到一条错误消息:
xmlns="> Was not expected.There is an error in XML document (2,2).
构建的模型是通过 Visual Studio 填充的编辑 -- 过去的特殊 -- XML 类。
我篡改了以下行:
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
我已经修改了这一行:
- 命名空间
- xmlns
- 删除了该行。
- 从根属性更改
但错误仍然存在,我不完全确定原因。
<?xml version="1.0" encoding="UTF-8"?>
<CanvasResult>
<TotalPages>8</TotalPages>
<CurrentPage>1</CurrentPage>
<Submissions>
<Submission Id="5840790">
<Form Id="718013">
<Name>Proof of Delivery</Name>
<Status>retired</Status>
<Version>6</Version>
</Form>
这是 XML 的第一个小部分,之后是一些更小的内容/部分,将进一步扩展。 我的文档在文件中的任何地方都没有 xmlns,是否可能是 Reader 或 XmlSerializer 正在添加它?
【问题讨论】:
-
您需要显示可能根本不是 XML 的 XML。
-
@AlexeiLevenkov 生成的模型来自第三方 XML Rest API;如果我添加该文件的内容,它会非常大。需要吗?
-
虽然我不能代表其他人,但我主要对文件的前几行感兴趣。代码似乎在 XML 文档的开头出错了,所以我倾向于认为问题就在那里。
-
文本
xmlns=">(来自错误)是否出现在文档的任何位置? -
@Greg 感谢您添加 XML...但看起来它与您遇到错误的不同(第二行没有“xmlns”...)
标签: c# asp.net xml visual-studio rest