使用Html敏捷包下載rss並在列表中顯示元素

c# html-agility-pack rss windows-phone xml

我使用html agility pack從我的rss源代碼下載,到目前為止我可以正確下載它,我可以使用SelectNode訪問所有元素,但我怎麼能說我在我的rss中有一個標題,它是項目節點中的一個節點,我可以讀它但如何在列錶框中列出它?!

我用這個來下載rss

HtmlWeb.LoadAsync("http://www.wpnovosti.com/feeds/posts/default?alt=rss", DownLoadCompleted);

void DownLoadCompleted(object sender, HtmlDocumentLoadCompleted e)
    {
        if (e.Error == null)
        {
            HtmlDocument doc = e.Document;
            if (doc != null)
            {
                foreach (HtmlNode rsstitle1 in doc.DocumentNode.SelectNodes("//title")) 
                {
                    var title = doc.DocumentNode.SelectNodes("//title");

                    if (rsstitle1 != null)
                    {
                            string titleText = rsstitle1.InnerText;
                            rsstitle.Text = titleText;
                            //MessageBox.Show(titleText);
                    }
                }
            }
        }
    }

這個“rsstitle”是主頁上的一個元素,一個列錶框中的textBlock命名為“listBox1”,我看到文本塊中的strig titleText,但是我只看到最後一個項目,它似乎一直圈到最後一個標題下載的rss項目列表。所以我的問題是如何列出所有標題。來自rss的xml看起來像這樣:

<?xml version='1.0' encoding='UTF-8'?>
<rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'>
  <channel>
    <atom:id>tag:blogger.com,1999:blog-6139395842965860280</atom:id>
    <lastBuildDate>Fri, 11 Oct 2013 13:24:41 +0000</lastBuildDate>
    <category>suma sumarum</category>
    <category>osnove</category>
    <category>glasine</category>
    <category>novosti</category>
    <category>uredaji</category>
    <category>aplikacije</category>
    <title>Windows Phone Novosti</title>
    <description>Prvi Windows Phone blog u Bosni i Hercegovini koji vama donosi sve potrebne informacije za vas omiljeni Windows Phone operativni sistem.</description>
    <link>http://www.wpnovosti.com/</link>
    <managingEditor>noreply@blogger.com (Dino Borogovac)</managingEditor>
    <generator>Blogger</generator>
    <openSearch:totalResults>451</openSearch:totalResults>
    <openSearch:startIndex>1</openSearch:startIndex>
    <openSearch:itemsPerPage>25</openSearch:itemsPerPage>
    <item>
      <guid isPermaLink='false'>tag:blogger.com,1999:blog-6139395842965860280.post-226671981499881807</guid>
      <pubDate>Fri, 11 Oct 2013 13:24:00 +0000</pubDate>
      <atom:updated>2013-10-11T15:24:41.780+02:00</atom:updated>
      <category domain='http://www.blogger.com/atom/ns#'>aplikacije</category>
      <title>Facebook Beta aplikacija sa novom nadogradnjom</title>
      <description>&lt;div align="justify"&gt;&lt;a href="http://lh4.ggpht.com/-kEftfu0aP-M/Ulf7tRs3EMI/AAAAAAAAIlo/bgmYMjOUSAg/s1600-h/IMG_2353%25255B3%25255D.jpg"&gt;&lt;img alt="IMG_2353" border="0" height="447" src="http://lh6.ggpht.com/-vomeApNFLA0/Ulf7uXzNw3I/AAAAAAAAIlw/sDhV-TsAqM8/IMG_2353_thumb.jpg?imgmax=800" style="background-image: none; border: 0px currentcolor; display: block; float: none; margin: 0px auto;" title="IMG_2353" width="670" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;Facebook Beta aplikacija dobila novu nadogradnju, ovo je jedna od rijetkih aplikacija koja se redovno aktualizira sa popravkama, novostima i novim funkcijama. Facebook Beta je aplikacija koja sluzi Microsoft-u za testiranje novih funkcija prije nego sto one izadu u oficijelnu aplikaciju �Facebook�.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;U novoj verziji, koja je za WP7 kao i za WP8 Microsoft-ovi razvijaci su napisali da su dodali jos par jezika (prevoda) u aplikaciju i popravili generalno brzinu aplikacije.&lt;/div&gt;&lt;a href="http://windowsphone.com/s?appid=93da5d29-daf0-4783-9ed5-a87b33247ec6"&gt;&lt;br /&gt;&lt;table class="app-download" summary="Skinite aplikaciju iz ovog clanka"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img height="160" src="http://3.bp.blogspot.com/-eCEJytrvw6Y/UlAhObc2mMI/AAAAAAAAIiY/DlnS17mqNwE/s1600/617e6c4c-6b9f-4903-b67d-dcd71062a3e5.png" style="display: inline;" title="Facebook aplikacija" width="160" /&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size: x-large; font-weight: bold;"&gt;Facebook Beta&lt;/span&gt;&lt;br /&gt;od: Microsoft Corp.&lt;br /&gt;Verzija: 5.1.1.1&lt;br /&gt;Cijena: Besplatno&lt;br /&gt;&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/-wKPKvNDpPww/Uc2-U6TAYFI/AAAAAAAAHow/yNwU7HrY3jg/s241/WPS_Download_Badge+bosanski+finish.png" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/a&gt;</description>
      <link>http://www.wpnovosti.com/2013/10/facebook-beta-aplikacija-sa-novom.html</link>
      <author>noreply@blogger.com (Dino Borogovac)</author>
      <media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-vomeApNFLA0/Ulf7uXzNw3I/AAAAAAAAIlw/sDhV-TsAqM8/s72-c/IMG_2353_thumb.jpg?imgmax=800' height='72' width='72'/>
      <thr:total>0</thr:total>
    </item>

還有另外25個元素在同一個內部,如標題,描述,發布和鏈接。我想擁有:

首先是主頁中一個列表中的所有標題。

其次所有鏈接都綁定到標題,所以如果用戶點擊它,那麼它會轉到我的另一個頁面,在那裡可以將url傳遞給webbrowser控件。

第三,如果可以在標題下做一個簡短的描述

第四個顯示已下載的rss的“description”元素中的post body,並留下類似於rss的元素,因為有像我需要的圖片和表等元素。

熱門答案

使用.NET提供的類可以幫助您解析和操作RSS提要,而不是使用Agility Pack(您可以肯定使用)。我相信,你想構建一個RSS閱讀器類的應用程序。以下鏈接有很多樣本可以幫助您:

http://code.msdn.microsoft.com/wpapps/RSS-Reader-in-Windows-afa86457 http://mobile.dzone.com/articles/build-rss-reader-windows-phone

希望這可以幫助。

如果這可以解決您的問題,請告訴我們。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因