【发布时间】:2012-01-22 01:20:23
【问题描述】:
<A xmlns="http://www.aaa.com/bbb/"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<B>
<aa>AUH</aa><bb>5</bb><cc>Abu</cc>
</B>
<B>
<aa>AUH</aa><bb>7</bb><cc>ghi</cc>
</B>
<ServiceResponse><ErrorMessage i:nil="true"/><ExecutionStatus>SUCCESS</ExecutionStatus></ServiceResponse>
</A>
我有一个类似上面的 XML,我已经为 A、B 和 ServiceResponse 创建了类。
我正在尝试使用以下代码进行解析:
XmlSerializer ser = new XmlSerializer(typeof(A));
objAirportListResponse = ser.Deserialize(new StringReader(str)) as A;
在上面的代码中,“str”是包含上面 XML 的字符串。
我收到如下错误:
XML 文档中存在错误 (1, 2)(System.InvalidOperationException)
如果我删除 xmlns="http://www.aaa.com/bbb/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 从 XML 我得到了同样的错误 因为 i:nil="true"。然后我删除了 xmlns="http://www.aaa.com/bbb/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 和 i:nil="true" 我试过了解析XML,这次成功解析到class。
但删除 xmlns="http://www.aaa.com/bbb/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 和 i:nil="true"不是正确的方法,请帮助我如何解析上面的示例。
提前致谢。
【问题讨论】:
-
而什么是例外?
InvalidOperationException.Message和InvalidOperationException.InnerException可能会告诉你到底出了什么问题。 -
这是我的异常:{System.InvalidOperationException: XML 文档中存在错误 (1, 2)。 ---> System.InvalidOperationException: 不是预期的。在 System.Xml.Serialization.XmlSerializer.resolveDeserializingType(XmlReader reader, XmlSerializationReader serialReader, Boolean soap12)
-
看看这个问题是否能回答你的问题:stackoverflow.com/questions/1556874/… 另外,我发现 XmlSerializer 太挑剔了,不值得。我发现使用 Linq to XML 手动解析通常更容易。
标签: xml windows-phone-7