使用XML Reader从RSS提要中获取特定信息到winform中

问题描述 投票:0回答:1

我是C#的新手,所以我将尽我所能尽力解释这一点。

我正在用C#创建一个简单的播客应用程序,并尝试使用XML阅读器接收RSS提要,然后将该信息放入不同的Winform中。

我已经研究出如何将所需的主要信息放入列表框。但是我不知道的是,通过单击listBox中的列表项,从RSS提要中获取另一条信息(摘要)。

我阅读RSS提要的课程。

列表项

public class RSSreader
{
    public static List<Tuple<string, string>> rssRead(string url)
    {
        string subject = "";
        string summary = "";
        var x = "";
        var y = "";
        var count = 0;
        var list = new List<Tuple<string, string>>();
        try
        {



            XmlReader reader = XmlReader.Create(url);
            SyndicationFeed feed = SyndicationFeed.Load(reader);
            reader.Close();

            foreach (SyndicationItem item in feed.Items)
            {
                count++;
                subject = item.Title.Text;
                summary = item.Summary.Text;
                x += count + " " + subject + " ";
                list.Add(new Tuple<string, string>("Avsnitt " + count+ " " + subject, summary));

            }

        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
        //Datahandler.SavePodFeed(list);
        return list ;
    }
}

public class RSSreader
{
    public static List<Tuple<string, string>> rssRead(string url)
    {
        string subject = "";
        string summary = "";
        var x = "";
        var y = "";
        var count = 0;
        var list = new List<Tuple<string, string>>();
        try
        {


            //string urlX = "http://feeds.soundcloud.com/users/soundcloud:users:298230954/sounds.rss";
            XmlReader reader = XmlReader.Create(url);
            SyndicationFeed feed = SyndicationFeed.Load(reader);
            reader.Close();

            foreach (SyndicationItem item in feed.Items)
            {
                count++;
                subject = item.Title.Text;
                summary = item.Summary.Text;
                x += count + " " + subject + " ";
                list.Add(new Tuple<string, string>("Avsnitt " + count+ " " + subject, summary));

            }

        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }

        return list ;

    }
}

即时消息用来填充列表框的方式

private void button1_Click(object sender, EventArgs e)
{
    var list = RSSreader.rssRead(tbxURL.Text);
    foreach (Tuple<string, string> item in list)
    {
        listBox2.Items.Add(item.Item1);
    }
    listBox2.Items.Add(RSSreader.rssRead(tbxURL.Text));
}

我对使用摘要onclick填充listBox中的richTextBox的看法。

private void listBox2_MouseClick(object sender, MouseEventArgs e)
{
    var list = RSSreader.rssRead(tbxURL.Text);
    foreach (Tuple<string, string> item in list)
    {
        if (item != listBox2.SelectedItem)
        {
            richTextBox1.Text = item.Item2.ToString();
        }
    }
}

我没有收到任何错误,但是无论我单击列表中的哪个元素,它都只会用相同的信息填充richTextBox。

我是C#的新手,所以我将尽我所能尽力对此进行解释。我正在用C#创建一个简单的播客应用程序,并尝试使用XML阅读器接收RSS提要,然后将其放置在...

c# winforms xmlreader rss-reader
1个回答
0
投票

这里有一些指针:

  • [Make a class,您在其中存储来自RSS的每个元素的信息(例如,具有属性索引(计数),主题,摘要等的MyPodcast.cs)]
© www.soinside.com 2019 - 2024. All rights reserved.