Abrindo notícia em página através de FEEDVeja como é simples ter seu site atualizado com notícias em tempo real abrindo em seu site. O legal deste código é que você consegue abrir a notícia diretamente em seu site, sem abrir em uma nova página ainda podendo definir o o layout das notícias, é relativamente simples mas não existe muitos exemplos na web.
Abaixo como desenvolver as páginas para inserir em seu site.
Iremos criar duas páginas:
[B]ListaNoticias.asp[/B] e [B]LeNoticia.asp[/B]
Vamos iniciar pela página que faz a leitura da notícia e exibe a lista de notícia para você:
[B]ListaNoticias.asp[/B]
[CODE]<%
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SCRIPT PARA LEITURA E EXIBIÇÃO DE NOTÍCIAS DA FOLHA DE SP '
' Desenvolvido em 5/9/2007. Última revisão em 27/9/2007 '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Definição da codificação da página
Response.CharSet="utf-8"
'Defina aqui a URL do Feed
FeedURL = "http://feeds.folha.uol.com.br/folha/informatica/rss091.xml"
'Crio o objeto MSXML que baixará o feed XML
Set xmlDoc = CreateObject("MSXML.DOMDocument")
xmlDoc.async = false
xmlDoc.setProperty "ServerHTTPRequest", true
xmlDoc.load(FeedURL)
'Se houver algum erro durante o carregamento do XML
If (xmlDoc.parseError.errorCode <> 0) then
Response.Write "Não foi possível abrir o XML."
Else
'Senão inicio a leitura do XML
'Leio o nó "Canal" para baixar informações sobre o XML
Set NohsDeCanal = xmlDoc.selectNodes("//channel/*")
For Each entry in NohsDeCanal
If entry.tagName = "title" then
TituloDoCanal = entry.text
ElseIf entry.tagName = "description" then
DescricaoDoCanal = entry.text
ElseIf entry.tagName = "link" then
LinkDoCanal = entry.text
End If
Next
'Inicio a leitura do nó que contém os itens (matérias) da Folha
Set NohsDeItem = xmlDoc.selectNodes("//item/*")
For Each item in NohsDeItem
If item.tagName = "title" then
ItensTitulo = ItensTitulo & item.text & "#%#"
ElseIf item.tagName = "link" then
ItensLink = ItensLink & item.text & "#%#"
ElseIf item.tagName = "description" then
ItensDescricao = ItensDescricao & item.text & "#%#"
End If
Next
'Crio um array com todos os itens para posterior leitura/tratamento
arrTitulos = split(ItensTitulo,"#%#")
arrLinks = split(ItensLink,"#%#")
arrDescricoes = split(ItensDescricao,"#%#")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Aqui começo a montar a página ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Inicio a tabela que conterá os links para as notícias
Response.Write "<table>"
'Mostro todos os links de matérias para o XML
For i=0 to uBound(arrTitulos)
'Trato o link para a matéria para que o link não
'apareça no GET da página que lê as notícias por completo
%><style type="text/css">
<!--
a:link {
color: #000000;
text-decoration: underline;
}
a:visited {
text-decoration: underline;
color: #000000;
}
a:hover {
text-decoration: none;
color: #000000;
}
a:active {
text-decoration: underline;
color: #000000;
}
-->
</style>
<tr>
<td><font face="Verdana" size="1"><a href="LeNoticia.asp?url=<%=arrLinks(i)%>"><%=arrTitulos(i)%></a></font></td>
</tr>
<p>
<%
Next
'Fecho a tabela que conterá os links para as notícias
Response.Write "</table>"
End If
'Elimino todos os itens e objetos criados
Set xmlDoc = Nothing
Set NohsDeCanal = Nothing
Set NohsDeItem = Nothing
%>
</p>
[/CODE]
Resultado página:

Agora vamos para a página que exibe a notícia formatada em seu site:
[B]LeNoticia.asp[/B]
[CODE]
<style>
h1 {
font-family: verdana;
font-size: 12px;
color: #0033CC;
}
p {
font-family: verdana;
font-size: 10px;
text-align: justify;
}
.fe230 {
width: 235px;
float: left;
padding: 10px;
}
.fd230 {
width: 235px;
float: left;
padding: 10px;
}
.fe175 {
width: 180px;
float: left;
padding: 10px;
}
.fd175 {
width: 180px;
float: left;
padding: 10px;
}
.fo1c {
font-family: verdana;
font-size: 10px;
color: #999999;
}
.fo1l {
font-family: verdana;
font-size: 10px;
}
</style>
<%
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SCRIPT PARA LEITURA E EXIBIÇÃO DE NOTÍCIAS DA FOLHA DE SP '
' Desenvolvido em 5/9/2007. Última revisão em 27/9/2007 '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Definição da codificação da página
Response.CharSet="utf-8"
'Requisito a URL
url=Request("url")
'Só executo a página se algum parâmetro vier pela URL
If url<>"" Then
'Crio o objexto XmlHttp que vai baixar a página da folha de SP
Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.4.0")
'Abro a URL
objXmlHttp.Open "GET", URL, False
objXmlHttp.Send
'Crio o objeto stream -> Este é um FIX que corrige o bug dos acentos
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type=2
'Escreve para o objeto stream o conteúdo que veio pelo XMLHttp
objStream.WriteText (objXmlHttp.responseBody)
objStream.Position=0
'Modifica o charset da página para LATIN-1. Isso faz com que
'os acentos sejam lidos corretamente
objStream.Charset = "latin1"
'Passa para a variável "Resultado" o texto com os acentos já convertidos
Resultado = objStream.ReadText(-1)
'Apago os objetos pois não os usarei mais
objStream.Close
Set objStream = Nothing
Set objXmlHttp = Nothing
'Aqui eu trato o HTML da página da folha.
'Pego o título da notícia
Titulo = Split(Resultado,"<!--TITULO-->")
Titulo2=Split(Titulo(1),"<!--/TITULO-->")
ArtigoTitulo = Titulo2(0)
'Pego o corpo da notícia
Texto = Split(resultado,"<!--TEXTO-->")
Texto2=Split(texto(1),"<!--/TEXTO-->")
Texto3=Split(texto2(0),"<div id=""articleEnd"">")
ArtigoTexto = texto3(0)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'' Aqui eu monto a página ''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Response.Write "<h1>" & ArtigoTitulo & "</h1>"
Response.Write ArtigoTexto
'Senão tiver vindo nenhum parâmetro pela URL eu informo
Else
Response.Write "Nenhum parâmetro de URL foi passado para a página"
End If
%>
<p align="right"><font face="Verdana" size="1"><a href="javascript:history.back()">< Voltar</a></font></p>
[/CODE]
Resultado final:

O código esta todo comentado e foi desenvolvido por: Bruno Barreto.
Vou continuar pesquisando novos scripts que seja útil no dia-dia de todos!
Lembrando que você pode usar o contador da máteria anterior e adaptar para este código.
Qualquer dúvida entre em contato comigo deixando um comentário.
Abraços!
Alexandre de Luccia