RSS Nedir?
RSS (Rich Site Summary / Really Simple Syndication) sitelerin içeriklerini başlıklar şeklinde sunmak için kullanılan bir teknoloji. Temelinde bir XML dosyası yatar. Bu teknoloji ilk olarak 1999 yılında Netspace tarafından geliştirilmiştir.
Dosya Yapısı:
<rss version="2.0">
<channel>
<title>Site Basligi</title>
<link>http://www.siteninadresi.com</link>
<description>Siteyle ilgili kisa açiklama</description>
<language>RSS'in yayinlandigi dil kodu. Türkçe için tr</language>
<item>
<title>Ilk Içerigin Basligi</title>
<link>Ilk Içerigin Adresi</link>
<description>Ilk Içerigin Metni</description>
</item>
<item>
<title>Ikinci Içerigin Basligi</title>
<link>Ikinci Içerigin Adresi</link>
<description>Ikinci Içerigin Metni</description>
</item>
</channel>
</rss>
Sitenizin veritabanındaki bilgilerinin RSS okuyucular tarafından okunabilir hale getirilmesi:
<?xml version="1.0" encoding="windows-1254" ?>
<%
Response.Buffer = True
Response.ContentType = "text/xml" %>
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb")
Function Temizle(strInput)
strInput = Replace(strInput,"&", "&", 1, -1, 1)
strInput = Replace(strInput,"'", "'", 1, -1, 1)
strInput = Replace(strInput,"""", "", 1, -1, 1)
strInput = Replace(strInput, ">", ">", 1, -1, 1)
strInput = Replace(strInput,"<","<", 1, -1, 1)
Temizle = strInput
End Function
%>
<rss version="2.0">
<channel>
<title>mydesign.gen.tr</title>
<link>http://www.mydesign.gen.tr</link>
<description>En Yeni İçerikler</description>
<language>tr</language>
<%
Set rs = Server.CreateObject("Adodb.Recordset")
SQL = "SELECT * FROM tablo ORDER BY tarih DESC"
rs.Open SQL, adoCon, 1, 3
i = 0
Do While not rs.EOF and i < 10
response.write("<item>")
response.write("<title>" & Temizle(rs("baslik")) & "</title>")
response.write("<link>http://www.mydesign.gen.tr/"& rs("id") &".html</link>")
response.write("<description>" & Temizle(rs("ozet")) & "</description>")
response.write("</item>")
i = i + 1
rs.MoveNext
Loop
rs.Close
set rs = Nothing
%>
</channel>
</rss>
Aslında bu kodlar bir XML dosyası yerine XML çıktısı veren bir asp sayfasının kodlarını olusturur. Peki neden bir asp sayfası çıkarıyoruz? Bunun 2 nedeni var:
1. Eger sitenize sonradan bir RSS desteği ekleyecek olursanız, aynı zamanda bir XML dosyasında yazmanız gerekeceğinden sitenizin tüm sistemini değiştirmeniz gerekecekti.
2. Hem sitenizin veritabanı hem de bir XML dosyasına kaydetmeniz gerekeceğinden kayıt işlemi yavaşlayacakti.
Baska Sitelerin RSS Kaynaklarindan Bilgi Almak
<%@ Language="VBScript" %>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="EN">
<head>
<title>[ D 0 G M A ]</title>
</head>
<body>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<%
Dim objXML
Dim objItemList
Dim objItem
Dim I
Set objXML = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
objXML.async = False
objXML.setProperty "ServerHTTPRequest", True
objXML.Load("http://www.mydesign.gen.tr/rss.asp")
If objXML.parseError.errorCode <> 0 Then
Response.Write "<strong>Hata:</strong> " & objXML.parseError.reason &"<br>"
Response.Write "<strong>Satır:</strong> " & objXML.parseError.line &"<br>"
Response.Write "<strong>Açıklama:</strong> " & Server.HTMLEncode(objXML.parseError.srcText) & vbCrLf
End If
Set objItemList = objXML.getElementsByTagName("item")
Set objXML = Nothing
For Each objItem In objItemList
i = 1
Response.Write "<div style=""padding-top:2px""><a href=""" & objItem.childNodes(1).text & """ target=""_blank"" title=""" & objItem.childNodes(2).text & """>"
Response.Write "" & objItem.childNodes(0).text & "</a><br>" & vbCrLf
Next
Set objItemList = Nothing
%>
</td>
</tr>
</table>
</body>
</html>