如何反序列化对象的xml响应

时间:2012-04-03 12:50:00

标签: xml xml-serialization xml-deserialization

我得到类似这样的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; } 
}

1 个答案:

答案 0 :(得分:0)

您的XML看起来不像XmlSerializer知道如何处理的格式。 请参阅documentation

您必须正确生成XML,或者如果您需要了解这个(奇怪的)XML表单,则必须编写自己的反序列化代码。或者,也许首先使用XSLT对其进行转换。