我得到类似这样的xml响应,当我试图将它反序列化为对象时,我无法做到这一点。值变为null。
我的回答在这里
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">15</int>
</response
response res = new response();
XmlDocument doc = new XmlDocument();
doc.LoadXml(XmlString);
XmlNodeReader reader = new XmlNodeReader(doc.DocumentElement);
XmlSerializer ser = new XmlSerializer(res.GetType());
object obj = ser.Deserialize(reader); // Then you just need to cast obj into whatever type it is, e.g.: response myObj = (response)obj;
public class response
{
public string responseHeader { get; set; }
public int status { get; set; }
public int QTime { get; set; }
}
答案 0 :(得分:0)
您的XML看起来不像XmlSerializer知道如何处理的格式。 请参阅documentation。
您必须正确生成XML,或者如果您需要了解这个(奇怪的)XML表单,则必须编写自己的反序列化代码。或者,也许首先使用XSLT对其进行转换。