Avatar billede gulbaek Nybegynder
25. juni 2006 - 12:42 Der er 3 kommentarer og
1 løsning

Lidt hjælp med min kode som er begyndt at returnere tomme lister

Er ved at lave en lille RssFeed læser og den virker egentlig fint nok, besluttede mig for at rydde lidt op i koden så det kunne blive lidt nemmere at læse, men så opstod mit problem, når jeg forsøger at hente mit rss feed ud fra min rssAdapter er det tomt. den kode som downloader rssfeed'et har jeg placeret i en loadRss metode i rssAdapter klassen og da koden befandt sig i page load eventen virkede den fint, men nu hvor jeg henter rsslisten ud fra rssAdapter er den bare tom, hvilket jeg ikke lige kan forstå, håber nogen kan hjælpe.


min page load event kode.
    protected void Page_Load(object sender, EventArgs e)
    {
        string rssUrl = "http://www.dotnetforum.dk/blogs/MainFeed.aspx?GroupID=15";
        RssAdapter rssAdapter = new RssAdapter(rssUrl, 10);
   
        rssRepeader.DataSource = rssAdapter.RssList;
        rssRepeader.DataBind();
    }

RssAdapter klassen
using System;
using System.Collections.Generic;
using System.Xml;
using System.Xml.XPath;

public class RssAdapter
{
    private int rssItems;
    private string RssUrl;
    List<RssObject> rssList;

    public List<RssObject> RssList
    {
        get { return rssList; }
    }

    public RssAdapter(string url, int rssItemsToRead)
    {
        rssItems = rssItemsToRead;
        RssUrl = url;
        rssList = new List<RssObject>();
       
        loadRss();
        string test = "";
    }

    private void loadRss()
    {
        List<RssObject> rssList = new List<RssObject>();

        XPathDocument document = new XPathDocument(RssUrl);
        XPathNavigator navigator = document.CreateNavigator();

        XmlNamespaceManager slashManager = new XmlNamespaceManager(navigator.NameTable);
        slashManager.AddNamespace("slash", "http://purl.org/rss/1.0/modules/slash/");

        XmlNamespaceManager dcManager = new XmlNamespaceManager(navigator.NameTable);
        dcManager.AddNamespace("dc", "http://purl.org/dc/elements/1.1/");

        XPathNodeIterator nodes = navigator.Select("/rss/channel/item");

        for (int i = 0; i < rssItems; i++)
        {
            nodes.MoveNext();
            RssObject rssObject = new RssObject();

            rssObject.Title = nodes.Current.SelectSingleNode("title").ToString();
            rssObject.Link = nodes.Current.SelectSingleNode("link").ToString();
            rssObject.ParsePubDateString(nodes.Current.SelectSingleNode("pubDate").ToString());
            rssObject.Guid = nodes.Current.SelectSingleNode("guid").ToString();
            rssObject.Dc_creator = nodes.Current.SelectSingleNode("dc:creator", dcManager).ToString();
            rssObject.Slash_comments = nodes.Current.SelectSingleNode("slash:comments", slashManager).ToString();
            rssObject.Description = nodes.Current.SelectSingleNode("description").ToString();

            rssList.Add(rssObject);
        }     
    }
}
Avatar billede nielle Nybegynder
25. juni 2006 - 16:14 #1
I din loadRss() har du i starten denne linje:

List<RssObject> rssList = new List<RssObject>();

Den skal slettes. Ellers arbejder du med en lokal kopi af rssList i loadRss().
Avatar billede nielle Nybegynder
25. juni 2006 - 16:18 #2
Enten skal rssList initialiseres sammen med klassen:

    public class RssAdapter
    {
        private int rssItems;
        private string RssUrl;
        List<RssObject> rssList = new List<RssObject>();
        ...

- eller også skal den initieres i loadRss():

        private void loadRss()
        {
            rssList = new List<RssObject>();
            ...

- men altså ikke ikke:

        private void loadRss()
        {
            List<RssObject> rssList = new List<RssObject>();
            ...
Avatar billede gulbaek Nybegynder
25. juni 2006 - 16:28 #3
Takker, den det var vist en lille smutter da jeg kopierede koden over i klassen, smid lige et svar :-)
Avatar billede nielle Nybegynder
25. juni 2006 - 16:29 #4
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester