Ir para conteúdo
Fórum Script Brasil
  • 0

pegando url RSS com ASP


Ronaldo Bueno

Pergunta

Pessoal, primeiro desculpa se não estiver no lugar certo.

estou com 3 problemas: vou explicá-los bem detalhado.

Vou dizer o que pretendo e depois como fiz, assim se alguém puder me ajudar agradeço muito.

Quero uma página em HTML que mostre o conteúdo de várias URL´s RSS Cadastradas em banco ACCESS, ou seja tenho um banco assim:

tabela-canal.jpg

na página asp, abro o banco e pego registro por registro, fazendo com que ele leia a URL e grave em um outro banco assim:

<!--#include file="include/open-tables.asp" -->

        <%

            set RSabre = server.createobject("adodb.recordset")
            SQLabre = "SELECT * FROM channel"
            RSabre.open SQLabre, conn, 2, 2

            while not RSabre.eof
            
            url = RSabre("url")
            fonte = RSabre("source")
            canal = RSabre("channel")

            Set xml = Server.CreateObject("MSXML2.DOMDocument.3.0")
            xml.async = False
            xml.SetProperty "ServerHTTPRequest", True
            xml.ValidateOnParse = False
            xml.PreserveWhiteSpace = False
            
            If Not xml.Load(url) Then
              Response.Write ""
            Else
              Set nodeList = xml.getElementsByTagName("item")


              For Each objNode In nodeList


                For Each objNode2 In objNode.childNodes
                  Select Case objNode2.nodeName
                    Case "title"     : title     = objNode2.firstChild.nodevalue
                    Case "link"      : link      = objNode2.firstChild.nodevalue
                    Case "pubDate"  : pubDate      = objNode2.firstChild.nodevalue
                  End Select
                Next


                title = Replace(title,Chr(39),Chr(39)&Chr(39))
                
                set RSgrava = server.createobject("adodb.recordset")
                SQLgrava = "SELECT * FROM grava_dados where fonte='"&fonte&"' and canal='"&canal&"' and titulo='"&title&"' and link='"&link&"' and data='"&pubDate&"'"
                RSgrava.open SQLgrava, conn, 2, 2
                
                dia = Mid(pubDate, 5, 3)
                
                if RSgrava.eof then
                
                    dim RSgravau
                    Set RSgravau = Server.CreateObject("ADODB.Recordset")
                    RSgravau.Open "grava_dados", Conn, 2, 2
    
                    RSgravau.addnew
                    RSgravau("fonte")     = fonte
                    RSgravau("canal")     = canal
                    RSgravau("titulo")     = title
                    RSgravau("link")      = link
                    RSgravau("dia")        = dia
                    RSgravau("data")      = pubDate
                    RSgravau.update
                
                end if

              Next
              Set nodeList = Nothing
            End If
            
            Set xml = Nothing
            
            rsabre.movenext
            wend

            RSabre.close
            Set RSabre = Nothing
        
            RSgrava.close
            Set RSgrava = Nothing

            RSgravau.close
            Set RSgravau = Nothing
        %>

        <!--#include file="include/close-tables.asp" -->

Alguém poderia me perguntar, porque você lê as URLS e grava no banco de dados ? porque o meu primeiro problema começa ai:

eu também tenho a página apenas lendo e mostrando, acontece que quando ele coloca na página a ordem que ele faz isso é do banco de canal, então fica várias linhas com o primeiro canal e depois muda para o outro. isso significa que a ordem das notícias não ficam do jeito que eu queria.

então resolvi gravar no banco para eu poder dar um select depois para mostrar as noticias exatamente como é nas páginas RSS, por ordem de data e hora.

Com isso tenho mais um problema. ele grava tudo certo, mas o campo pubDate (original da URL RSS) grava no meu banco como string assim: Sat, 07 Aug 2010 18:35:17 -0300, e isso não da para ordenar, porque fica sem lógica.

Ai tentei pegar o dia somente desse dado: dia = Mid(pubDate, 5, 3) e gravar também no banco como dia, mas também não estou consegundo ordenar. fica tudo fora do que desejo.

Outro motivo que optei por gravar no banco, é que queria fazer uma div onde fosse caindo a notícia mais nova, ou seja ele abre mostra as atuais por ordem de chegada e quando entrar outra no banco, ele abaixa as antigas e a nova fica em cima.

Será que fui claro nos meus problemas ?

Agradeço muito pela colaboração

Esqueci. já andei por tudo no google e nada, por isso resolvi abrir o assunto.

Editado por quintelab
Adicionado BBCode Code
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...