2012-04-03 36 views
0

我得到的xml响应是这样的,当我试图反序列化它的对象我无法做到这一点。值变为空。如何反序列化对象的xml响应

我的回应是这里

<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 15个 Anu 2012-04-03 12:50:39

+0

响应RES =新的响应(); XmlDocument doc = new XmlDocument(); doc.LoadXml(XmlString); XmlNodeReader reader = new XmlNodeReader(doc.DocumentElement); XmlSerializer ser = new XmlSerializer(res.GetType()); object obj = ser.Deserialize(reader); //然后你只需要将obj转换成任何类型,例如: 响应myObj =(response)obj; 公开课回复 { public string responseHeader {get;组; } public int status {get;组; } public int QTime {get;组; } } – Anu 2012-04-03 12:51:01

回答

0

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

您将不得不正确地生成XML,或者如果您需要了解这种(奇怪的)XML表单,则必须编写自己的反序列化代码。或者,也许可以先用XSLT进行转换。