Ir para conteúdo
Fórum CódigoFonte.net

Ronaldo Bueno

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

  1. Ronaldo Bueno

    pegando url RSS com ASP

    Pessoal, já coloquei em outros fóruns mas não obtive respostas. se alguém puder me ajudar agradeço. 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: 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.
×
×
  • Criar Novo...