如何对对象的xml响应进行反序列化
我得到了类似这样的xml响应,当我试图将其反序列化为对象时,我无法做到这一点。值正在变为null 我的回答就在这里如何对对象的xml响应进行反序列化,xml,xml-serialization,xml-deserialization,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
<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
15
您的XML看起来不像XmlSerializer知道如何处理的格式。
看
您必须正确生成XML,或者如果需要理解这种(奇怪的)XML表单,则必须编写自己的反序列化代码。或者,可能先用XSLT转换它。我的响应在这里015 response res=new response();XmlDocument doc=新的XmlDocument();doc.LoadXml(XmlString);XmlNodeReader reader=新的XmlNodeReader(doc.DocumentElement);XmlSerializer ser=新的XmlSerializer(res.GetType());对象对象=序列反序列化(读取器);//然后,您只需要将obj转换为任何类型,例如:response myObj=(response)obj;公共类响应{public string responseHeader{get;set;}public int status{get;set;}public int QTime{get;set;}