Avançar para o conteúdo principal

XML - Leitor RSS Feeds

Neste poste vou publicar uma aplicação desenvolvida com o Monodevelop em C# que permitirá fazer o download das feeds de dois sites (BBC e PCMagazine) cujos artigos podem ser lidos no browser.
A janela principal é constituída por duas combobox's, uma que permite escolher qual o site de onde descarregar o XML com a lista de artigos (feed RSS) e a outra que é preenchida com a lista dos artigos depois de clicado o botão Carrega RSS.




Para carregar o ficheiro XML vamos utilizar o código


XmlDocument doc = new XmlDocument();

para criar um documento XML. Para depois ler o ficheiro do site selecionado na combobox1

if (this.combobox1.ActiveText=="BBC")
doc.Load("http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml");
else
if (this.combobox1.ActiveText=="PCMagazine")
doc.Load("http://rssnewsapps.ziffdavis.com/pcmag.xml");

Se não tiver nada selecionado na combobox1 apresentamos uma mensagem ao utilizador, para isto basta o seguinte código


MessageDialog md = new MessageDialog(this,
        DialogFlags.DestroyWithParent, MessageType.Info,
        ButtonsType.Close, "Tem de selecionar uma feed!");
md.Run();
md.Destroy();


Se tudo correu bem, ou seja, o utilizador selecionou um site da combobox1 e carregou no botão para carregar a lista, e este processo concluiu sem erros, devemos então percorrer os nós do XML para adicionar à combobox2 os títulos dos artigos, além disso guardamos em duas listas o texto resumo do artigo e o link para este.
Assim 
//seleciona o primeiro item
XmlNodeList items = doc.SelectNodes("//item");
//Lista de items
foreach (XmlNode item in items){
//titulo
store.AppendValues(item.SelectSingleNode("title").InnerText);
//descricao
//algumas descriçoes tem tags html mas vamos tratar delas
int x=item.SelectSingleNode("description").InnerText.IndexOf("<");
if (x>0)
textos.Add( item.SelectSingleNode("description").InnerText.Substring(0,x));
else
textos.Add( item.SelectSingleNode("description").InnerText);
//link
urls.Add(item.SelectSingleNode("link").InnerText);        
}

Destaco o pormenor de que alguns textos têm links que não têm boa aparência no label assim só adicionamos ao label1 o texto até encontrarmos um <.

Para mostrar o texto do artigo controlamos o evento change da combobox2

protected void OnCombobox2Changed (object sender, System.EventArgs e)
{
if(this.combobox2.Active<0) return;
this.label1.Text=textos[this.combobox2.Active];
}

Depois disto tudo falta somente o clique no botão para ler o artigo

protected void OnButton3Clicked (object sender, System.EventArgs e)
{
string temp;
if (this.combobox2.Active<0) return;
temp=urls[this.combobox2.Active];
System.Diagnostics.Process.Start(temp);
}

Assim está tudo.

Comentários

Mensagens populares deste blogue

Vamos fazer um carro com o Unity 3D

Neste artigo vamos fazer um carro, simples, com o Unity 3D. A ideia é utilizar o motor de física do Unity 3D para simular o comportamento do carro. Os passos a seguir são: [1] - Criar um projeto novo

C# IEnumerable e IEnumerator

Neste artigo vamos aprender como utilizar a interface IEnumerator por forma a permitir utilizar um ciclo foreach num conjunto ou coleção de dados. A maior parte das coleções (listas e outras) já implementam a interface, mas neste caso vamos personalizar a maneira como percorremos a lista. Quando utilizamos código assim: foreach(Class c in Collection) { ... } O compilador converte este código em algo assim: IEnumerator cc = Collection.GetEnumerator() while(cc.MoveNext()) { c=(Class)cc.Current; ... } Ao implementar a interface IEnumerable significa que a classe implementa uma versão da função GetEnumerator() que deve devolver uma classe que implemente a interface IEnumerator. Vamos explorar um exemplo. Começamos pela classe client Esta classe permitirá guardar os dados dos clientes, existindo um campo para indicar se o cliente ainda está ativo ou não. De seguida temos uma classe que define uma lista de clientes e que implementa a interface IEnumerable que de

React - Introdução

 Neste post vamos fazer uma breve introdução ao React. React é uma framework javascript e por isso é importante ter conhecimentos desta linguagem de programação para melhor compreender o seu funcionamento. O que é necessário? Para construir páginas com React é necessário ter instalado a framework Node e o seu instalador de packages o npm. Com o Node instalado basta abrir uma janela da linha de comandos, eu aconselho utilizar o novo Windows Terminal ou o Cmder . Na sua linha de comando escolhida execute o comando: npx create-react-app Tutorial01 Este comando vai criar uma pasta com o nome Tutorial01 e instalar dos os ficheiros necessários para construir a sua primeira aplicação React dentro dessa pasta. De seguida entramos na pasta criada com o comando: cd Tutorial01 E iniciamos a aplicação com o comando: npm start Deve conseguir ver uma página com o seguinte aspeto: A partir daqui, até fechar a linha de comando, todas as alterações feitas aos ficheiros da sua aplicação são automaticam