[英]Best way to consume xml feed in asp.net MVC (c#)
我有一個MVC網站,當您單擊按鈕時,將使用Get方法從另一個網站獲取xml數據。 然后,我需要在網頁中顯示此XML的一部分。
我當前的方法是將XML反序列化為對象,然后將對象傳遞到View,然后將獲取適當的數據。
我的問題是我的類沒有完全匹配XML數據(它沒有每個元素/屬性/等)。 數據太長,元素和屬性太多,所以我不想將所有內容都寫到類中。 而且由於數據中的某些錯誤,我無法使用XSD.exe從XML數據創建類(盡管當我的網頁正在讀取xml數據時,它工作正常)。
有更有效的方法嗎?
在此鏈接中閱讀到IXmlSerializable可能已經不存在了,盡管評論還指出了它的一些問題。 看起來可能很復雜。 如何在C#中僅反序列化XML文檔的一部分
非常感謝您的幫助。 謝謝!
使用框架來使用Atom提要。 請參見以下內容:System.ServiceModel.Syndication命名空間-msdn.microsoft.com/zh-cn/library/system.servicemodel.syndication.aspx
與其直接將反序列化xml直接反序列化為對象,不如將xml加載到XDocument
對象中,然后使用XLinq查詢XDocument
對象並創建需要傳遞給視圖的必要ViewModel。
對於前。
查看模型
public class FeedViewModel
{
..
public FeedItem[] FeedItems { get; set; }
}
public class FeedItem
{
public string Title { get; set; }
public string Description { get; set; }
public DateTime Date { get; set; }
}
在你的行動中
var feedDocument = XDocument.Load(feedUrl);
var feedItems = feedDocument.Descendants("item")
orderby DateTime.Parse(feed.Element("pubDate").Value) descending
select new FeedItem
{
Title = feed.Element("title").Value,
Description = feed.Element("description").Value,
Date = DateTime.Parse(feed.Element("pubDate").Value)
}.ToArray();
return View(new FeedViewModel{ FeedItems = feedItems });
http://deepumi.wordpress.com/2010/02/21/how-to-consume-an-atom-rss-feed-using-asp-net-c-with-linq/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.