Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gppereira3

Ler RSS usando C#

Recommended Posts

Caros amigos, bom dia.

Estava estudando o site http://www.aspneti.com/Ler+RSS+usando+o+Visual+Studio.NET+2005+248,0.aspx e tentando através de lá fazer um controle que me permitisse ler rss usando o visual studio 2005 na linguagem C#.

Segui exatamente como naquelas linhas e ao invés de usar o link Microsoft pra fazer o bind do rss eu usei como exemplo o do uol.

Ao fazer a execução, logo ao abrir a página, ocorre uma exception que é exatamente essa:

 

Marcação DTD esperada não encontrada. Linha 1, posição 3.

Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

 

Detalhes da Exceção: System.Xml.XmlException: Marcação DTD esperada não encontrada. Linha 1, posição 3.

 

Pensei em vários meios pra resolver, mas ainda não achei algum que fosse efetivo o suficiente pra sanar este problema de código e assim venho recorrer aos senhores me ajudar a resolver este problema.Alguém pode me ajudar?

 

Desde já muito obrigado.

Gde Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

gppereira3, seja bem vindo ao Fórum iMasters, conheça nossas regras: Regras do Fórum

 

Tentou utilizar o da Microsoft para teste?

Poste parte do código que esta dando o erro.

 

Abraços...

 

Então...eu já tentei usar...Estou usando um controle GridView pra que nele retorne as RSSs...

Segue código:

 

 

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            //preenchendgridview
            preencheGrid();
        }
    }

    private void preencheGrid()
    {
        try
        {
            //criar o dataset
            DataSet dtSet = new DataSet();
            dtSet.ReadXml("http://rss.uol.com.br/");
            this.GridView.DataSource = dtSet.Tables[2].DefaultView;
            this.GridView.DataBind();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}

Ao fazer a compilação ele retorna o seguinte erro:

 

Erro de Servidor no Aplicativo '/LerRSS'.

--------------------------------------------------------------------------------

 

Marcação DTD esperada não encontrada. Linha 1, posição 3.

Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

 

Detalhes da Exceção: System.Xml.XmlException: Marcação DTD esperada não encontrada. Linha 1, posição 3.

 

Erro de Origem:

 

 

Linha 32: catch (Exception ex)

Linha 33: {

Linha 34: throw ex;

Linha 35: }

Linha 36: }

 

 

Arquivo de Origem: c:\Users\Desenvolvimento3\Documents\Visual Studio 2005\WebSites\LerRSS\Default.aspx.cs Linha: 34

 

Rastreamento de Pilha:

 

 

[XmlException: Marcação DTD esperada não encontrada. Linha 1, posição 3.]

_Default.preencheGrid() in c:\Users\Desenvolvimento3\Documents\Visual Studio 2005\WebSites\LerRSS\Default.aspx.cs:34

_Default.Page_Load(Object sender, EventArgs e) in c:\Users\Desenvolvimento3\Documents\Visual Studio 2005\WebSites\LerRSS\Default.aspx.cs:18

System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15

System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34

System.Web.UI.Control.OnLoad(EventArgs e) +99

System.Web.UI.Control.LoadRecursive() +47

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

 

 

 

 

--------------------------------------------------------------------------------

Informações sobre a Versão: Microsoft .NET Framework Versão:2.0.50727.312; Versão do ASP.NET:2.0.50727.833

 

 

O que pode ser??

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET > Web Applications

 

Olha seu código não tem nada de mais, não encontrei erro visivelmente.

Só achei estranho passar a tabela com indice 2.

 

Se abrir o rss em algum browser abre?

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET > Web Applications

 

Olha seu código não tem nada de mais, não encontrei erro visivelmente.

Só achei estranho passar a tabela com indice 2.

 

Se abrir o rss em algum browser abre?

 

Abraços...

 

Abrindo o RSS(no caso o do uol) em browsers ele abre normalmente.

Já compilando ele não consegue...Ele faz o build sem erros.

O link da matéria é exatemente esse...É passo a passo, embora não esteja funcionando como pode ver...

http://www.aspneti.com/Ler+RSS+usando+o+Visual+Studio.NET+2005+248,0.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que esta passando aqui:

dtSet.Tables[2].DefaultView;

Este indice 2?

 

Abraços...

 

Segundo o que entendi no artigo o autor atribuiu o DataSource do grid ao DataSet criado anteriormente passando a Table[2].DefaultView( DataSet dtSet = new DataSet();)

Há como mudar essa linha pra pegar o conteudo??Se sim, de que forma??

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consigo testar o código aqui devido ao Proxy.

Mas acessei o site da UOL.

 

O correto não seria passar o Xml no link, como este:

http://rss.home.uol.com.br/index.xml

 

//criar o dataset
DataSet dtSet = new DataSet();
dtSet.ReadXml("http://rss.home.uol.com.br/index.xml");
GridView1.DataSource = dtSet.Tables[2].DefaultView;
GridView1.DataBind();

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.