0
第一次我不得不使用HttpUtility
解碼器。我是否將HttpUtility
放在這段代碼的末尾?或者我創建一個新的方法並通過它來運行字符串?另一個需要注意的代碼是指類名Utils
,其中有一些XML解析正在進行。如果解決方案是創建一個新的方法,在XML解析之後放置HttpUtility
是否正確?如何應用HttpUtility解碼器
在XML解析結束時,該方法將解析切換到鏈接「返回鏈接」。那麼我是否需要將解析結果交給HttpUtility
,並在HttpUtility
結束時將結果交給鏈接?在網絡客戶端代碼下面粘貼了Utils.CS
。
對不起,這個冗長的問題,我只編寫了大約8個月,並沒有遇到任何情況。
public void LoadFeed()
{
//check if network and client are available
if (NetworkInterface.GetIsNetworkAvailable() && !String.IsNullOrEmpty(uri))
{
LoadingState = LoadingState.LOADING;
RaisePropertyChanged("LoadingState");
var wc = new WebClient();
wc.DownloadStringCompleted += (sender, e) =>
{
if (e.Error == null)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
LoadingState = LoadingState.COMPLETED;
FeedLinks = Utils.GetLinksFromFeed(e.Result);
RaisePropertyChanged("FeedLinks");
RaisePropertyChanged("LoadingState");
});
}
};
wc.DownloadStringAsync(new Uri(uri, UriKind.Absolute));
}
else
{
LoadingState = LoadingState.ERROR;
RaisePropertyChanged("LoadingState");
}
Utils.CS
:
public static List<Link> GetLinksFromFeed(string xmlString)
{
List<Link> links = null;
//try to parse result as rss feed
XDocument doc = XDocument.Parse(xmlString);
//grab default namespace
XNamespace xName = doc.Root.GetDefaultNamespace();
//parse items
links = (from item in doc.Descendants(xName + "item")
select new Link
{
Title = item.Element(xName + "title").Value,
Url = item.Element(xName + "link").Value,
}).ToList<Link>();
return links;
}
工作很好。很多......非常感謝。我將這個包裝器添加到了Utils.cs類中,一切都很好。 – 2013-05-11 03:03:12