Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
Ronaldo Bueno

pegando url RSS com ASP

Recommended Posts

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:

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×
×
  • Criar Novo...