Üye Kayıt Üye Giriş

RSS Dosya Yapısı, Yayınlanması / Okunması


RSS Dosya Yapısı, Yayınlanması / Okunması

 

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,"&", "&amp;", 1, -1, 1)
strInput = Replace(strInput,"'", "'", 1, -1, 1)
strInput = Replace(strInput,"""", "", 1, -1, 1)
strInput = Replace(strInput, ">", "&gt;", 1, -1, 1)
strInput = Replace(strInput,"<","&lt;", 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>

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER