2016-05-01 15 views
1

Ich entwickle eine Windows-Formularanwendung C#, die den Titel der Nachrichten anzeigen wird. Bisher kann ich nur den 1. Titel zeigen. Ich möchte, dass meine App den nächsten Titel nach 20 Sekunden und so weiter anzeigt. Wenn mir die Titel ausgehen, wird es wieder nach oben gehen. so weit ich habe dies getan:Wie zeigt man nach einiger Zeit verschiedene Attribute aus XML in C#?

private void GetNewsTopStories() 
{ 
    string queryNews = String.Format("http://news.yahoo.com/rss/"); 
    XmlDocument wData = new XmlDocument(); 
    wData.Load(queryNews); 

    XmlNamespaceManager manager = new XmlNamespaceManager(wData.NameTable); 

    XmlNode channel = wData.SelectSingleNode("rss").SelectSingleNode("channel"); 
    XmlNodeList nodes = wData.SelectNodes("rss/channel/item", manager); 

    titleNews = channel.SelectSingleNode("item").SelectSingleNode("title").InnerText; 
    topNewsLabel.Text = titleNews.ToString(); 
} 

Antwort

0

Versuchen Sie, diese

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Xml; 
using System.Xml.Linq; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     const string URL = "http://news.yahoo.com/rss/"; 
     string[] titles = null; 
     int count = -1; 
     public Form1() 
     { 
      InitializeComponent(); 
      timer1.Enabled = false; 
      timer1.Tick += new System.EventHandler(this.timer1_Tick); 
     } 

     private void buttonEnd_Click(object sender, EventArgs e) 
     { 
      timer1.Enabled = false; 
     } 

     private void buttonStart_Click(object sender, EventArgs e) 
     { 
      timer1.Interval = 20000; 
      count = -1; 
      timer1.Enabled = true; 

     } 

     private void timer1_Tick(object sender, EventArgs e) 
     { 
      if ((count == -1) || (count >= titles.Count())) 
      { 
       GetFeeds(); 
       count = 0; 
      } 
      textBox1.Text = titles[count++]; 

     } 
     public void GetFeeds() 
     { 
      timer1.Enabled = false; 
      XDocument doc = XDocument.Load(URL); 
      titles = doc.Descendants("item").Select(x => (string)x.Element("title")).ToArray(); 
      timer1.Enabled = true; 
     } 
    } 


} 
+0

danke .. dass eine große Hilfe war! –