Web design and hosting, database, cloud and social media solutions that deliver real business results
  • Veritabanı Hizmetleri
    • Araçlar
      • Claytabase Server Disk IOPs Calculator
      • SQL Kod Yedekleme
      • SQL Yazıcı
    • Teknik Makaleler
      • SQL-Server
      • SQL Server 2008 Bakım Planı
      • SQL Server işlevlerini kullanma
      • SQL Server Tarihlerini Kullanma
  • Web Sitesi Tasarımı
    • Ousia
    • Teknik Makaleler
      • ASP-NET
      • CSS
    • Web Sitesi Güvenliği
    • Wight Adası
  • İş hizmetleri
    • Microsoft Azure
    • Microsoft Office
  • Sosyal Medya
  • Hakkında
    • Portföy
    • Takım
      • Chester Copperpot
CS - češtinaDE - DeutschEN - EnglishES - EspañolFR - FrançaisHI - हिंदीIT - italianoPL - polskiPT - PortuguêsRU - русскийZH - 中国的

Web siteniz için bir RSS Kaynağı oluşturun

ASP.NET'te Web Siteniz için RSS Beslemesi oluşturmak için kolay bir yol

hakkında

RSS'ye ve sitem için neler yapabileceğine bakmak için biraz zaman harcadım ve ilk kez biraz deneme yanılma ve hata yaparken sonunda oraya gittim.

Tahmin ediyorum çünkü burada olduğunuzu düşünüyorsanız, RSS bağlantısını kontrol etmemeniz durumunda muhtemelen RSS'yi anlıyorsunuz demektir.

Aşağıda, eski sitemin RSS özet akışından alınmış ve RSS Atom özelliklerine uygun şekilde ayarlanmış bir örnek var.

Sample RSS

<rss xmlns:atom="https://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <atom:link href="https://www.gsclayton.net/rss" rel="self" type="application/rss+xml"/>
        <title>gsclayton rss feed</title>
        <link>https://www.gsclayton.net</link>
        <copyright>Copyright gsclayton 2012</copyright>
        <description>The la blogs and articles from gsclayton</description>
        <item>
            <title>Disk Space and Database Size Alerts</title>
            <description>
            gsclayton.net-SQL Server 2008, Disk Space and Database Size Alerts stored procedure to check your server
            </description>
            <link>
            https://www.gsclayton.net/Blog/SQL/1/SQL%20Server%202008,%20Disk%20Space%20and%20Database%20Size%20Alerts
            </link>
            <pubDate>Wed, 20 Nov 2013 22:16:08 GMT</pubDate>
            <category>SQL</category>
            <guid>
            https://www.gsclayton.net/8e53acf0-74d8-4e32-a627-f5e71f0fb29f
            </guid>
        </item>
    </channel>
</rss>

hakkında

Kod muhtemelen olduğundan daha karmaşık görünüyor, bu nedenle ne yaptığına göz atalım.

Önce SQL ve XML için ad alanlarını içe aktarırız.

Ardından, veritabanına bağlantı kuruldu, bu bu durumda web yapılandırmasından çekiliyor.

LoaderVB

VB

Imports System.Data.SqlClient
Imports System.Xml
Imports System.Data
Imports Claytabase.LanguageConvert

Partial Class RSS
  Inherits System.Web.UI.Page
  Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString)
  Private Sub LoadFeed() Handles Me.Load
  'Clear any previous output from the buffer
  Dim lg As String = Replace(Page.RouteData.Values("lg").ToString, "'", "''")
  Dim BaseURL As String = "https://www.claytabase.co.uk/"
  Dim MyTitle As String = ConvertText("RSSTitle", lg)
  Dim MyDescr As String = ConvertText("RSSDesc", lg)

  Response.Clear()
  Response.ContentType = "text/xml"
  Response.Charset = "Utf-8"
  Dim xtwFeed As XmlTextWriter = New XmlTextWriter(Response.OutputStream, Encoding.UTF8)
  xtwFeed.WriartDocument()
  'The mandatory rss tag
  xtwFeed.WriartElement("rss")
  xtwFeed.WriteAttriburing("version", "2.0")
  xtwFeed.WriteAttriburing("xmlns:atom", "https://www.w3.org/2005/Atom")
  'The channel tag contains RSS feed details
  xtwFeed.WriartElement("channel")
  xtwFeed.WriteRaw("<atom:link href="https://tr.claytabase.com/"" & BaseURL & lg & "/rss"" rel=""self"" type=""application/rss+xml"" />")
  xtwFeed.WriteElementString("title", MyTitle)
  xtwFeed.WriteElementString("link", baseURL)
  xtwFeed.WriteElementString("copyright", "Copyright Claytabase 2012")
  xtwFeed.WriteElementString("language", lg)
  xtwFeed.WriteElementString("description", MyDescr)

  'Objects needed for connecting to the SQL 
  Using com As New SqlCommand("EXEC GetRSS '" + lg + "'", con)
  If con.State = ConnectionState.Closed Then
  con.Open()
  Else
  End If
  Using dr = com.ExecuteReader()
  'Loop through the content of the database and add them to the RSS feed 
  While dr.Read()
  xtwFeed.WriartElement("item")
  xtwFeed.WriteElementString("title", dr.Item(0).ToString())
  xtwFeed.WriteElementString("description", dr.Item(1).ToString())
  xtwFeed.WriteElementString("link", BaseURL + dr.Item(2).ToString())
  xtwFeed.WriteElementString("pubDate", Format(CDate(dr.Item(3).ToString()), "ddd, dd MMM yyyy hh:mm:ss") + " GMT")
  xtwFeed.WriteElementString("category", dr.Item(4).ToString())
  xtwFeed.WriteElementString("guid", BaseURL + "/" + dr.Item(5).ToString())
  xtwFeed.WriteEndElement()
   End While
  End Using
  End Using
  'Close all tags 
  xtwFeed.WriteEndElement()
  xtwFeed.WriteEndElement()
  xtwFeed.WriteEndDocument()
  xtwFeed.Flush()
  xtwFeed.Close()
  Response.End()
  End Sub
End Class

Sarma

Sayfa yüklemeden gelen koda ve işte burada biraz daha yaratıcı oldu.

Alan, bu sitenin temel bir parçası olup sisteme her bir istek için hangi dili kullandığını bildiren ve temel URL her şey için aynı olacaktır, daha sonra betik içinde yeniden kullanılabilir.

Sonraki iki alan (MyTitle ve MyDescr), veritabanının dil girişine bağlı olarak bir dize döndürdüğü yerleşik bir dil dönüştürücü aracılığıyla konur.

Kodun önümüzdeki birkaç satırı, kodlama ve yanıt türünü belirler, bir XML yazar açar ve gerekli başlıklardan bazılarını belirler; bunlar nadiren değişecektir, el ile bunları ayarladım.

Şimdi verileri okumaya başlayabiliriz, bu yüzden ilk iş bir SQL komutu oluşturmaktır ve bu durumda sadece dil girişine bağlı olarak veritabanından gerekli alanları döndüren bir saklı yordam çağırıyorum.

Daha sonra SQL bağlantısını açıp, sonuç kümesindeki veritabanından döngü yapacak bir veri okuyucusu ilan ettik.

XML etiketinin her bir belge için öğe olduğunu zaten biliyoruz, bu yüzden bunu hemen açabiliriz.

Ardından, gerekli her öğeyi veriyle doldurun ve tarihinizin doğru biçimde olduğundan emin olun, ardından WriteEndElement öğesini kullanarak etiketi kapatın.

Veriler okunduktan sonra kod, daha önce açılmış olan her eleman için veri okuyucusunu, bağlantıları ve bitiş etiketlerini yazmayı kapatıyor.

Sizinkini yazıp yayınladığınızda, W3C RSS Validator'da kontrol ettiğinizden emin olun .

Yazar

Gavin Clayton
Gavin Clayton
SQL Server ve ASP.NET ile çalışmamı sürdürmek için bir yol olarak Claytabase'i 2010'da kurdum. Bu, Ousia İçerik Yönetim Sisteminin konseptten pazardaki en hızlı CMS'lerden biri haline getirilmesiyle sonuçlandı.
 Google Translate
Google Translate
RSS Login ContactCookie PolicySitemap
facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd
+441983300796info@claytabase.co.ukGround Floor, Building 1000, Lakeside North Harbour, Western Road, Portsmouth, Hampshire, United Kingdom, PO6 3EZ
Bu sitedeki ayarlar tüm çerezlere izin verecek şekilde ayarlanmıştır. Bunlar, çerez politikamız ve ayarlar sayfamızdan değiştirilebilir. Bu siteyi kullanmaya devam ederseniz, çerezlerin kullanımını kabul etmiş olursunuz.
Ousia Logo
Ousia CMS Loader