Web design and hosting, database, cloud and social media solutions that deliver business results
  • Soluzioni aziendali
    • automazione dei processi robotici
    • Software
    • Servizi database
      • Aggiornamento del server e servizi DBA
      • Integrazione dei dati
      • Power BI
      • Servizi di Datawarehouse
    • Sito Web Design
      • Design del logo
      • Gateway di pagamento
      • Localizzazione e traduzione web
      • Ottimizzazione del sito web
      • Sicurezza del sito
      • Strumenti tecnici
    • Servizi per gli affari
      • Microsoft Azure
      • Servizi Google Cloud
      • Servizi Web Amazon
    • Microsoft Office
    • Servizi di consulenza e gestione dei social media
  • Accademia
    • Il nostro ambiente di prova
    • Imparare a usare i database
      • Le basi
      • Ottieni una query aperta
      • Piano di manutenzione di SQL Server 2008
      • Utilizzo dei dati di SQL Server
      • Utilizzo delle date di SQL Server
      • Utilizzo delle funzioni di SQL Server
      • Utilizzo di SQL Server Pivot-Unpivot
      • Strumenti
    • Imparare il web design
      • Costruire il sistema di gestione dei contenuti di Ousia
      • ASP-NET
      • CSS
      • Utilizzo di JavaScript
    • Usando i social media
      • Chiedere una recensione su Google
      • Dimensioni delle immagini dei social media
      • Modifica di un account Facebook da personale a aziendale
      • Scegliere dove concentrare lo sforzo sui social media
      • Utilizzo dei metadati per impostare le immagini dei social media
    • Imparare a usare il cloud e i servizi informatici
      • Errore dell'utilità di pianificazione 2147943645
      • Richiesta SSL e generazione di file PFX in OpenSSL Simple Steps
  • Chi Siamo
    • Carriere
      • Traduttore inglese-portoghese
      • Traduttore inglese-spagnolo
    • Portfolio
    • Squadra
      • Adrian Anandan
      • Alì Al Amine
      • Ayse Hur
      • Chester Copperpot
      • Gavin Clayton
      • Sai Gangu
      • Suneel Kumar
      • Surya Mukkamala
č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)

Crea un feed RSS per il tuo sito Web da un database

Procedura dettagliata: creazione di un feed RSS multilingue per il tuo sito Web in ASP.NET utilizzando VB.NET o C#.NET da un database SQL Server

Sito web realizzato da Claytabase

Per aiutarti a eseguire questa procedura dettagliata, segui la guida sulla configurazione del nostro ambiente di test o adatta il codice alle tue esigenze .

Livello di esperienza - Intermedio

Introduzione

Icona RSS

RSS è un file basato su XML standardizzato che fornisce informazioni sugli aggiornamenti apportati al tuo sito.

Questi possono quindi essere utilizzati da varie applicazioni di aggregazione di notizie che escono e controllano i cambiamenti nei vari siti preferiti degli utenti e li informano di qualsiasi novità.

A causa della natura dello sviluppo del web, ci sono un paio di formati leggermente diversi, quello sotto è in Atom 2.0.

Campione di un file RSS

<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">  <channel>    <atom:link href="https://it.claytabase.com/" rel="self" type="application/rss+xml"/>    <title/>    <link/>    <copyright>Copyright Claytabase 2012</copyright>    <language/>    <description/>    <item>      <title>Create an RSS Feed for your Website In ASP NET and SQL Server</title>      <description>Easy way to create an RSS Feed for your Website in ASP.NET in VB.NET or C#.NET</description>      <link>https://www.claytabase.co.uk/Academy/Learning-Web-Design/Using-ASP-NET/Create-an-RSS-Feed-for-your-Website-In-ASP-NET-and-SQL-Server</link>      <pubDate>Wed, 15 Dec 2021 09:37:24 GMT</pubDate>      <category>monthly</category>      <guid>https://www.claytabase.co.uk/A7038527-90D0-4214-8C65-3A2BD831F141</guid>    </item>    <item>      <title>CSS Styling for AJAX Accordion Control</title>      <description>Some simple CSS styling rules for an AJAX Accordion Control</description>      <link>https://www.claytabase.co.uk/Academy/Learning-Web-Design/Using-CSS/CSS-Styling-for-AJAX-Accordion-Control</link>      <pubDate>Tue, 14 Dec 2021 07:00:00 GMT</pubDate>      <category>monthly</category>      <guid>https://www.claytabase.co.uk/0DB19797-5B3A-45F0-B3E6-2A8080DA60EE</guid>    </item>  </channel></rss>

Abbiamo creato una tabella d'esempio, e l'abbiamo eseguito tramite il Database della nostra accademia. Questa tabella include un UNIQUEIDENTIFIER (GUID), titolo, descrizione, URL, lingua e data. Questi data fungeranno come una sorta di informazioni catturate o richiesti nella maggior parte dei CMS.

USE ClaytabaseAcademyGOCREATE TABLE RSSPages(PageGUID UNIQUEIDENTIFIER CONSTRAINT DF_PageGUID DEFAULT NEWSEQUENTIALID() CONSTRAINT PK_PageGUID PRIMARY KEY,PageTitle NVARCHAR(200),PageDescription NVARCHAR(500),PageURL NVARCHAR(500),PageLanguage NVARCHAR(2),PageDate DATETIME,ChangeFrequency NVARCHAR(20))GOINSERT INTO RSSPages(PageTitle,PageDescription,PageURL,PageDate,PageLanguage,ChangeFrequency)SELECT 'Create an RSS Feed for your Website from a database','Walkthrough: Creating an RSS Feed for your Website in ASP.NET using VB.NET or C#.NET from an SQL Server database','https://www.claytabase.co.uk/Academy/Learning-Web-Design/Using-ASP-NET/Create-an-RSS-Feed-for-your-Website-In-ASP-NET-and-SQL-Server','2021-12-15 10:00:00','en','Weekly'INSERT INTO RSSPages(PageTitle,PageDescription,PageURL,PageDate,PageLanguage,ChangeFrequency)SELECT 'CSS Styling for AJAX Accordion Control','Some simple CSS styling rules for an AJAX Accordion Control','https://www.claytabase.co.uk/Academy/Learning-Web-Design/Using-CSS/CSS-Styling-for-AJAX-Accordion-Control',GETDATE(),'en','Monthly'INSERT INTO RSSPages(PageTitle,PageDescription,PageURL,PageDate,PageLanguage,ChangeFrequency)SELECT 'We''ll take the strain while you do what you are good at','A Multi-National team with over 20 years of experience specialising in Web, Database, Cloud services and bespoke Business Management Software','https://www.claytabase.co.uk/',GETDATE(),'en','Daily'INSERT INTO RSSPages(PageTitle,PageDescription,PageURL,PageDate,PageLanguage,ChangeFrequency)SELECT 'Wir nehmen Ihnen die Anstrengung, während Sie das tun, was Sie gut können','Ein multinationales Team mit über 20 Jahren Erfahrung, das sich auf Web-, Datenbank-, Cloud-Dienste und maßgeschneiderte Business-Management-Software spezialisiert hat','https://de.claytabase.com/',GETDATE(),'de','Daily'INSERT INTO RSSPages(PageTitle,PageDescription,PageURL,PageDate,PageLanguage,ChangeFrequency)SELECT 'Nos esforzaremos mientras haces lo que se te da bien','Un equipo multinacional con más de 20 años de experiencia especializado en Web, bases de datos, servicios en la nube y software de gestión empresarial a medida.','https://de.claytabase.com/',GETDATE(),'es','Daily'GOCREATE PROC GetRSSPages(@Language NVARCHAR(2)) AS BEGINSELECT * FROM RSSPagesWHERE PageLanguage=@LanguageENDGOEXEC GetRSSPages 'de'

Aggiungere un nuovo Web Form in Visual Studio

In VS, aggiungi un modulo Web facendo clic con il pulsante destro del mouse sulla cartella Pagine, selezionando Aggiungi e quindi Modulo Web.

Ora vogliamo entrare nel codice sottostante, quindi fai clic con il pulsante destro del mouse sulla nuova pagina e seleziona Visualizza codice

Il codice probabilmente sembra molto più complesso di quello che è, quindi diamo un'occhiata a cosa fa.

Per prima cosa importiamo gli spazi dei nomi per SQL e XML.

Quindi viene impostata la connessione al database, che in questa istanza lo estrae dalla configurazione web.

LoaderVBC#

VB

Imports System.Data.SqlClientImports System.XmlPublic Class RSS    Inherits System.Web.UI.Page    Dim con As New SqlConnection(ConfigurationManager.ConnectionStrings("SqlConnection").ConnectionString)    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load        Dim RSSLanguage As String = "en"        Dim BaseURL As String = "https://www.claytabase.co.uk/"        Dim MyTitle As String = "Academy Title"        Dim MyDescr As String = "Academy Description"
        'Clear any previous output from the buffer        Response.ClearContent()        Response.ContentType = "text/xml"        Response.Charset = "Utf-8"        Dim xtwFeed As XmlTextWriter = New XmlTextWriter(Response.OutputStream, Encoding.UTF8)        xtwFeed.WriteStartDocument()        'The mandatory rss tag        xtwFeed.WriteStartElement("rss")        xtwFeed.WriteAttributeString("version", "2.0")        xtwFeed.WriteAttributeString("xmlns:atom", "https://www.w3.org/2005/Atom")        'The channel tag contains RSS feed details        xtwFeed.WriteStartElement("channel")        xtwFeed.WriteRaw("<atom:link href="https://it.claytabase.com/"" & BaseURL & RSSLanguage & "/rss"" rel=""self"" type=""application/rss+xml"" />")        xtwFeed.WriteElementString("title", MyTitle)        xtwFeed.WriteElementString("link", BaseURL)        xtwFeed.WriteElementString("copyright", "Copyright Claytabase 2012")        xtwFeed.WriteElementString("language", RSSLanguage)        xtwFeed.WriteElementString("description", MyDescr)
        'Objects needed for connecting to the SQL         Using com As New SqlCommand("EXEC GetRSSPages '" + RSSLanguage + "'", 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.WriteStartElement("item")                    xtwFeed.WriteElementString("title", dr.Item("PageTitle").ToString())                    xtwFeed.WriteElementString("description", dr.Item("PageDescription").ToString())                    xtwFeed.WriteElementString("link", dr.Item("PageURL").ToString())                    xtwFeed.WriteElementString("pubDate", Format(dr.Item("PageDate"), "ddd, dd MMM yyyy hh:mm:ss") + " GMT")                    xtwFeed.WriteElementString("category", dr.Item("ChangeFrequency").ToString())                    xtwFeed.WriteElementString("guid", BaseURL + "/" + dr.Item("PageGUID").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 SubEnd Class

C#

using System.Text;using Microsoft.VisualBasic;using System.Data.SqlClient;using System.Xml;public class RSS : System.Web.UI.Page{    private SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings("SqlConnection").ConnectionString);    protected void Page_Load(object sender, System.EventArgs e)    {        string RSSLanguage = "en";        string BaseURL = "https://www.claytabase.co.uk/";        string MyTitle = "Academy Title";        string MyDescr = "Academy Description";
        // Clear any previous output from the buffer        System.Web.UI.Page.Response.ClearContent();        System.Web.UI.Page.Response.ContentType = "text/xml";        System.Web.UI.Page.Response.Charset = "Utf-8";        XmlTextWriter xtwFeed = new XmlTextWriter(System.Web.UI.Page.Response.OutputStream, Encoding.UTF8);        xtwFeed.WriteStartDocument();        // The mandatory rss tag        xtwFeed.WriteStartElement("rss");        xtwFeed.WriteAttributeString("version", "2.0");        xtwFeed.WriteAttributeString("xmlns:atom", "https://www.w3.org/2005/Atom");        // The channel tag contains RSS feed details        xtwFeed.WriteStartElement("channel");        xtwFeed.WriteRaw("<atom:link href=\"" + BaseURL + RSSLanguage + "/rss\" rel=\"self\" type=\"application/rss+xml\" />");        xtwFeed.WriteElementString("title", MyTitle);        xtwFeed.WriteElementString("link", BaseURL);        xtwFeed.WriteElementString("copyright", "Copyright Claytabase 2012");        xtwFeed.WriteElementString("language", RSSLanguage);        xtwFeed.WriteElementString("description", MyDescr);
        // Objects needed for connecting to the SQL         using (SqlCommand com = new SqlCommand("EXEC GetRSSPages '" + RSSLanguage + "'", con))        {            if (con.State == ConnectionState.Closed)                con.Open();            else            {            }            using (var dr = com.ExecuteReader())            {                // Loop through the content of the database and add them to the RSS feed                while (dr.Read())                {                    xtwFeed.WriteStartElement("item");                    xtwFeed.WriteElementString("title", dr.Item["PageTitle"].ToString());                    xtwFeed.WriteElementString("description", dr.Item["PageDescription"].ToString());                    xtwFeed.WriteElementString("link", dr.Item["PageURL"].ToString());                    xtwFeed.WriteElementString("pubDate", Strings.Format(dr.Item["PageDate"], "ddd, dd MMM yyyy hh:mm:ss") + " GMT");                    xtwFeed.WriteElementString("category", dr.Item["ChangeFrequency"].ToString());                    xtwFeed.WriteElementString("guid", BaseURL + "/" + dr.Item["PageGUID"].ToString());                    xtwFeed.WriteEndElement();                }            }        }        // Close all tags         xtwFeed.WriteEndElement();        xtwFeed.WriteEndElement();        xtwFeed.WriteEndDocument();        xtwFeed.Flush();        xtwFeed.Close();        System.Web.UI.Page.Response.End();    }}

Conclusioni

Sul codice dal caricamento della pagina, ed è qui che è stato un po 'più creativo.

Il campo RSSLanguage viene utilizzato nel nostro CMS, indicando al sistema quale lingua viene utilizzata per ogni richiesta, e anche l'URL di base verrebbe popolato, per questo esempio li abbiamo resi campi statici.

Le prossime righe di codice stabiliscono la codifica e il tipo di risposta, aprono un writer XML e stabiliscono alcune delle intestazioni richieste, poiché queste cambieranno raramente, le ho impostate manualmente.

Ora possiamo passare alla lettura dei dati, quindi il primo compito è creare un comando SQL, e in questo caso chiamiamo semplicemente la stored procedure che restituisce i campi richiesti dal database, a seconda dell'input della lingua.

Quindi apriamo la connessione SQL e dichiariamo un lettore di dati per scorrere il set di risultati dal database.

Sappiamo già che il tag XML è un elemento per ogni documento, quindi possiamo aprirlo immediatamente.

Compila quindi ogni elemento richiesto con i dati e assicurati che la data sia nel formato corretto, quindi chiuderemo il tag utilizzando WriteEndElement.

Una volta che tutti i dati sono stati letti, il codice chiude il lettore di dati, le connessioni e la scrittura dei tag di chiusura per ogni elemento aperto in precedenza.

Una volta che hai scritto e pubblicato il tuo, assicurati di controllarlo sul W3C RSS Validator.

Autore

Utile?

Please note, this commenting system is still in final testing.

Sito web realizzato da Claytabase

Questa è una sezione di codice che è stata modificata dal codice di Ousia Content Management System, uno dei sistemi più veloci e ottimizzati sul mercato, parte dei nostri servizi di progettazione di siti web.

Questi sono disponibili con siti a partire da circa £ 500.

di più: Reattivo e veloce. Sviluppo web, design e hosting con sistema di gestione dei contenuti
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

Site Links

RSSLoginLink Cookie PolicyMappa del sito

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

Partnered With

Le impostazioni di questo sito sono impostate per consentire tutti i cookie. Questi possono essere modificati sulla nostra pagina politica e le impostazioni dei cookie. Continuando a utilizzare questo sito l'utente accetta l'utilizzo dei cookie.
Ousia Logo
Logout
Ousia CMS Loader