如何在没有根节点的情况下使用RestSharp反序列化XML?
我们有一个XML响应,如下所示:如何在没有根节点的情况下使用RestSharp反序列化XML?,xml,serialization,restsharp,Xml,Serialization,Restsharp,我们有一个XML响应,如下所示: <userresult> <username> Bill </username> <description> Man </description> <userresult> <userresult> ... </userresult <userresult> ... </userresult 比尔
<userresult>
<username>
Bill
</username>
<description>
Man
</description>
<userresult>
<userresult>
...
</userresult
<userresult>
...
</userresult
比尔
人
...
根节点是必需的。如果没有根节点,则它不是有效的xml。对于无效的xml,您需要自己解析它,并分别序列化每个userresult
。您可以使用一些“虚拟”节点包装响应,并将其反序列化var validXml=$“{response}”
@Fabio尝试此操作时,它无法将“string”类型转换为“RestSharp.IRestResponse”。您可以尝试更新IRestResponse.Content
->response.Content=$”{response.Content}
如果不是,您可以始终使用.NetXmlSerializer
对“包装”的xml进行反序列化。还记得使用response.Content
获取responseOk的原始数据吗,我已经编译并运行了这个。但我认为这不是正确的解决方案,因为现在的输出是RestSharp.resresponse
,因此它们不在同一级别。您需要wrapresponse.Content
var response = client.Execute(request);
RestSharp.Deserializers.XmlDeserializer deserial = new XmlDeserializer();
userresult userresult = deserial.Deserialize<userresult>(response);
public class userresult
{
public List<username> userName { get; set; }
public List<description> description { get; set; }
}
public class username
{
public string userName { get; set; }
}
public class description
{
public string description { get; set; }
}