Ir para conteúdo

POWERED BY:

Arquivado

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

Ronaldo Bueno

pegando url RSS com ASP

Recommended Posts

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:

 

Imagem Postada

 

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

Olá Amigo...

 

dá uma olhada no lab. des cript, que existe um exemplo, pode te ajudar bastante...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não achei, poderia passar o link ? Obrigado

 

Alguém saberia responder como faço para converter a string (Sat, 07 Aug 2010 18:35:17 -0300) para o formato 00/00/0000 00:00:00 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa o FormatDateTime(date,format), depois você pode até desmenbrar a data

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei assim: FormatDateTime(variavel,0) e assim FormatDateTime(pubDate,format) ele retorna a hora 00:00:00. onde pubDate é a variavel que vem da URL RSS.

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.