usa il pacchetto agilità Html per scaricare rss e mostrare gli elementi in un elenco

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

Domanda

Uso il pacchetto html agility per il download dalla mia fonte rss, finora posso scaricarlo correttamente e posso accedere a tutti gli elementi con SelectNode ma come posso dire di avere un titolo nel mio rss ed è un nodo nel nodo item , posso leggerlo ma come elencarlo su una lista ?!

io uso questo per scaricare il 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);
                    }
                }
            }
        }
    }

questo "rsstitle" è un elemento nella mainpage un textBlock all'interno di un listbox "listBox1", vedo il titolo strigText nel blocco di testo ma vedo solo l'ultimo elemento, sembra che cerchi fino all'ultimo titolo in l'elenco degli articoli rss scaricati. quindi la mia domanda è come posso fare una lista di tutti i titoli. l'xml del rss ha questo aspetto:

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);
                    }
                }
            }
        }
    }

Ci sono altri 25 elementi con lo stesso titolo, descrizione, pubblicazione e collegamento. vorrei avere:

Prima tutti i titoli in una lista nella pagina principale.

In secondo luogo tutti i link si legano ai titoli, quindi se gli utenti lo toccano in modo che vada alla mia altra pagina in cui è possibile passare l'URL a un controllo del browser.

Terzo se è possibile fare una breve descrizione sotto il titolo

Quarto mostra il corpo del post che si trova nell'elemento "description" del rss già scaricato, e lascia gli elementi come se fossero sul rss perché ci sono elementi come immagini e tabelle e così via di cui ho bisogno.

Risposta popolare

Piuttosto che usare Agility Pack (che puoi usare con certezza), è una buona idea usare le classi fornite da .NET che possono aiutarti a analizzare e manipolare i feed RSS. Credo che tu voglia costruire un tipo di applicazione RSS reader. Ci sono molti esempi che i seguenti link dovrebbero aiutarti:

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

Spero che questo ti aiuti.

Facci sapere se questo risolve il tuo problema.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché