Web design and hosting, database, cloud and social media solutions that deliver business results
  • Бизнес решения
    • Веб-дизайн сайта
      • Безопасность веб-сайта
      • Остров Уайт
    • Бизнес-услуги
      • Microsoft Azure
    • Microsoft Office
    • Социальные медиа
  • Службы баз данных
    • Отчеты
      • Claytabase Server Disk IOPs Calculator
      • SQL-принтер
      • Восстановление кода SQL
    • Проверка телефонного номера в правильном формате Великобритании с SQL Server 2008
  • О нас
    • команда
      • Chester Copperpot
      • Гэвин Клейтон
    • Портфолио
  • Академия
    • Базы данных обучения
      • SQL-Server
      • В SQL Server 2008 план обслуживания
      • Использование SQL Server Pivot-Unpivot
      • Использование дат SQL Server
      • Использование функций SQL Server
    • Изучение веб-дизайна
      • ASP-NET
      • CSS
čeština (CS)Deutsch (DE)English (EN-GB)English (EN-US)Español (ES)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Создайте RSS-канал для своего сайта

Простой способ создания RSS-канала для вашего сайта в ASP.NET

Около

Я потратил немало времени на просмотр RSS и то, что он мог сделать для моего сайта, и, хотя в первый раз это было немного пробным и ошибочным, я в конце концов попал туда.

Я угадываю, потому что вы здесь, что вы, вероятно, понимаете, что такое RSS , если не проверить ссылку.

Ниже приведен пример из RSS-канала моего старого сайта, который был настроен для работы с спецификациями RSS Atom.

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>

Около

Код, вероятно, выглядит намного сложнее, чем есть, поэтому давайте посмотрим, что он делает.

Сначала мы импортируем пространства имен для SQL и XML.

Затем устанавливается соединение с базой данных, это вытаскивает его из веб-конфигурации в этом экземпляре.

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://ru.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

Завершение

На код из загрузки страницы, и вот где он был немного более креативным.

Поле lg - базовая часть этого сайта, сообщающая системе, язык которой используется для каждого запроса, и базовый URL-адрес будет одинаковым для всего, они могут быть повторно использованы позже в скрипте.

Следующие два поля (MyTitle и MyDescr) передаются через встроенный языковой конвертер, где база данных возвращает строку, зависящую от ввода языка.

Следующие несколько строк кода задают тип кодирования и ответа, открывают XML-запись и задают некоторые из требуемых заголовков, так как они редко меняются, я установил их вручную.

Теперь мы можем перейти к чтению данных, поэтому первое задание - создать команду SQL, и в этом случае я просто вызываю хранимую процедуру, которая возвращает необходимые поля из базы данных, в зависимости от ввода языка.

Затем мы открываем SQL-соединение и объявляем, что считыватель данных циклически перебирает результирующий набор из базы данных.

Мы уже знаем, что XML-тег является элементом для каждого документа, поэтому мы можем сразу открыть его.

Затем заполняйте каждый необходимый элемент данными и убедитесь, что ваша дата в правильном формате. Затем мы закроем тег с помощью элемента WriteEndElement.

После того, как все данные были прочитаны, код закрывает считыватель данных, соединения и записывает концевые теги для каждого элемента, открытого ранее.

После того, как вы написали и опубликовали свою версию, обязательно проверьте ее в W3C RSS Validator.

автор

Helpful?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Политика в отношении файлов cookieКарта сайта

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
Настройки на этом сайте настроены так, что разрешены все файлы cookie. Их можно изменить на странице политики и настроек cookie. Продолжая использовать этот сайт, вы соглашаетесь на использование файлов cookie.
Ousia Logo
Logout
Ousia CMS Loader