我使用C#,这是在Visual Studio 2016中完成的。
我从学校接受了锻炼。我收到了半个RSS-Reader,我的任务是完成它。我完成了练习,但我并不满足。它只显示RSS代码中的第一项,如果你问我,它是无用的。我想创建一个按钮,显示下一个和RSS代码。
当我告诉我的老师时,他说这很难,但我可能会这样做(我每周只有一天课,一个月前开课)。他建议我使用while循环,但我根本不知道从哪里开始。
这是我的代码:
namespace RSSReader
{
public partial class RSSReaderForm : Form
{
public RSSReaderForm()
{
InitializeComponent();
}
private void toonRssCodeKnop_Click(object sender, EventArgs e)
{
//Aanmaken variabele+nieuw webclient object in de variabele stoppen
WebClient client = new WebClient();
//RSS code ophalen voor de meegegeven link
MessageBox.Show(client.DownloadString(RSSTextBox.Text));
}
private void toonBerichtKnop_Click(object sender, EventArgs e)
{
//[DEEL 1 - ophalen RSS code]
//Aanmaken variabele + nieuw webclient object in de variabele stoppen
WebClient client = new WebClient();
//RSS code ophalen voor de meegegeven link en in een nieuwe string variabele stoppen
string rssCode = client.DownloadString(RSSTextBox.Text);
//[DEEL 2 - Eerste bericht uitlezen, deze staat tussen <item> en </item> tekst]
int itemStartPositie = rssCode.IndexOf("<item>"); //Zoek de positie waarop de eerste <item> tekst staat.
itemStartPositie = itemStartPositie + 6; //Dit voorkomt dat de teskst <item> zelf wordt meegekopierd.
int itemEindPositie = rssCode.IndexOf("</item>"); //Zoek de positie waarop de eerste </item> tekst staat.
int itemLengte = itemEindPositie-itemStartPositie; //Bereken hoeveel posities er tussen begin- en eind-positie zitten
//Kopieer vanaf positie itemStartPositie precies itemLengte letters
string itemCode = rssCode.Substring(itemStartPositie, itemLengte);
//[DEEL 3 - in itemCode de title en description opzoeken en deze in de labels plaatsen]
//[VOEG HIER JE EIGEN CODE TOE]
int titelStartPositie = rssCode.IndexOf("<title>");
titelStartPositie = titelStartPositie + 7;
int titelEindPositie = rssCode.IndexOf("</title>");
int titelLengte = titelEindPositie - titelStartPositie;
int descriptionStartPositie = rssCode.IndexOf("<description>");
descriptionStartPositie = descriptionStartPositie + 13;
int descriptionEindPositie = rssCode.IndexOf("</description>");
int descriptionLengte = descriptionEindPositie - descriptionStartPositie;
int linkStartPositie = rssCode.IndexOf("<link>");
linkStartPositie = linkStartPositie + 6;
int linkEindPositie = rssCode.IndexOf("</link>");
int linkLengte = linkEindPositie - linkStartPositie;
string titelCode = rssCode.Substring(titelStartPositie, titelLengte);
string descriptionCode = rssCode.Substring(descriptionStartPositie, descriptionLengte);
string linkCode = rssCode.Substring(linkStartPositie, linkLengte);
titelLabel.Text = titelCode;
descriptionLabel.Text = descriptionCode;
linkLabel.Text = linkCode;
}
private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(linkLabel.Text);
}
private void volgendeBerichtKnop_Click(object sender, EventArgs e)
{
}
}
}
我只是不知道从哪里开始以及如何去做。帮助会很棒。