C# 反序列化xamarin表单上rest wcf服务返回的xml
如何解析从rest服务返回的xml节点。我已经在xamarin pcl跨平台上编程了,我使用了许多策略,但这里没有一个可用的是我的工作方法。我希望解析返回的字符串,并将节点的值绑定到xamarin.forms的listview控件 ps:xdocument不适用于我的案例,xmldocument无法输入代码 还有,抱歉说得太多了C# 反序列化xamarin表单上rest wcf服务返回的xml,c#,wcf,xamarin,xamarin.forms,C#,Wcf,Xamarin,Xamarin.forms,如何解析从rest服务返回的xml节点。我已经在xamarin pcl跨平台上编程了,我使用了许多策略,但这里没有一个可用的是我的工作方法。我希望解析返回的字符串,并将节点的值绑定到xamarin.forms的listview控件 ps:xdocument不适用于我的案例,xmldocument无法输入代码 还有,抱歉说得太多了 public async Task<string> httpRequest(string url) { Uri uri = new Uri(url)
public async Task<string> httpRequest(string url)
{
Uri uri = new Uri(url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
string received;
using (var response = (HttpWebResponse)(await
Task<WebResponse>.Factory.FromAsync(request.BeginGetResponse,request.EndGetResponse, null)))
{
using (var responseStream = response.GetResponseStream())
{
using (var sr = new StreamReader(responseStream))
{
received = await sr.ReadToEndAsync();
}
}
}
}
公共异步任务httpRequest(字符串url)
{
Uri=新的Uri(url);
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(uri);
收到字符串;
使用(var response=(HttpWebResponse)(wait
Task.Factory.fromsync(request.BeginGetResponse,request.EndGetResponse,null)))
{
使用(var responseStream=response.GetResponseStream())
{
使用(var sr=新的StreamReader(responseStream))
{
已接收=等待sr.ReadToEndAsync();
}
}
}
}
异步任务反序列化SexmlStringFromURL(字符串url)
{
var xmlstring=await-httpRequest(url);
XmlSerializer serializer=新的XmlSerializer(typeof(List));//初始化序列化程序
列表反序列化列表;
deserializedList=(列表)serializer.Deserialize(xmlstring);
返回反序列化列表;
}
//使用属性为您的类型创建一个类。
公共类你的类型
{
[XmlElement(“xml中的属性名称”)]
公共字符串属性_One{get;set;}
....
}
您的问题解决了吗?是的,非常感谢,我刚刚将检索到的数据作为json交付,并使用newtonsoft库对单行var list=JsonConvert.DeserializeObject(jsonString)中的数据进行反序列化;超级,享受:)
async Task<your_type> DeserialseXMLStringFromURL(string url)
{
var xmlstring = await httpRequest(url);
XmlSerializer serializer = new XmlSerializer(typeof(List<your_type>));//initialises the serialiser
List<your_type> deserializedList;
deserializedList = (List<your_type>)serializer.Deserialize (xmlstring);
return deserializedList;
}
// Create a class for your type with properties.
public class your_type
{
[XmlElement("property_name_in_xml")]
public string Property_One{ get; set;}
....
}