Web design and hosting, database, cloud and social media solutions that deliver business results
  • Geschäftslösungen
    • Robotische Prozessautomatisierung
    • Software
    • Datenbank-Beratungsdienste
      • Datawarehouse-Dienste
      • Datenintegration
      • PowerBI
      • Werkzeuge
    • Website Design
      • Weblokalisierung und -übersetzung
      • Website Sicherheit
    • Cloud Services
      • Microsoft Azure
    • Microsoft Office
    • Sozialen Medien
  • Akademie
    • Unsere Testumgebung
    • Datenbankdesign lernen
      • SQL Server 2008 Wartungsplan
      • Offene Abfrage abrufen
      • Verwenden von SQL Server Daten
      • Verwenden von SQL Server Datum
      • Verwenden von SQL Server Funktionen
      • Verwenden von SQL Server Pivot-Unpivot
    • Lern Web Design
      • ASP-NET
      • CSS
      • Verwendung von JavaScript
    • Lernen von IT-Diensten
      • Anfordern von SSL und Generierung von PFX-Datei in OpenSSL Simple Steps
  • Über
    • Bloggen
    • Karriere
    • Mannschaft
      • Adrian Ananda
      • Ali Al-Amine
      • Ayse Hur
      • Chester Copperpot
      • Gavin Clayton
      • Sai Gangu
      • Suneel Kumar
      • Surya Mukkamala
    • Mappe
čeština (CS)Deutsch (DE)English (EN-US)English (EN-GB)Español (ES)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Erstellung einer XML-Sitemap von SQL Server in ASP NET

Erstellung einer XML-Sitemap von SQL Server in ASP NET

Um

Bei der Entwicklung unseres Content-Management-Systems wussten wir, dass eine Sitemap-Datei enthalten sein musste, um eine schnelle Erkennung von Inhalten durch die verschiedenen Crawler zu ermöglichen, die Suchmaschinen verwenden.

Da unser System bereits über eine Datenbank verfügt, lag es auf der Hand, diese Daten zu verwenden und die Datei dynamisch zu erstellen.

Das System musste in der Lage sein, viele Seiten zu verarbeiten, daher haben wir für eingebaute Redundanz eine Sitemap-Indexseite erstellt, die dann mit den Sitemaps verlinkt.

XML Sitemap Index

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <sitemap>   

  <loc>https://www.claytabase.co.uk/sitemap.xml?Language=EN&Page=1</loc>

  <lastmod>2019-07-17</lastmod>

</sitemap>

<sitemap>

  <loc>https://www.claytabase.co.uk/sitemap.xml?Language=EN&Page=2</loc>

  <lastmod>2019-07-17</lastmod>

</sitemap>

</sitemapindex>

XML Sitemap

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>

    <loc>https://www.claytabase.co.uk/</loc>

    <lastmod>2013-12-13</lastmod>

    <changefreq>monthly</changefreq>

    <priority>1</priority>

  </url>

  <url>

    <loc>https://www.claytabase.co.uk/About-Us</loc>

    <lastmod>2013-12-09</lastmod>

    <changefreq>monthly</changefreq>

    <priority>1</priority>

  </url>

</urlset>

Wie man es generiert

Ich habe die Codegenerierung zur leichteren Lesbarkeit in zwei Klassen aufgeteilt, aber sie könnte kombiniert werden, wenn Sie möchten.

Die Generierung ist in das Seitenladeereignis eingehängt, aber ziemlich einfach.

  • Stellen Sie den Inhaltstyp der Antwort auf text/xml und die Kodierung auf utf-8 ein
  • Erstellen Sie einen XML Text Writer und beginnen Sie mit dem Schreiben des Dokuments
  • Erstellen Sie eine SQL-Verbindung mit einer in der Webkonfigurationsdatei gespeicherten Verbindungszeichenfolge
  • Holen Sie sich alle möglichen Werte aus Ihrer Datenbank und schieben Sie sie zum Lesen in einen Datensatz
  • Schreiben Sie das erste Element (sitemapindex oder urlset), dies wird als Teil des Standards benötigt, und legen Sie das Schema fest
  • Starten Sie eine Schleife durch den Datensatz
    • Schreiben Sie das erforderliche Element (Sitemap oder URL)
    • Schreiben Sie die erforderlichen Attribute für jedes Element
  • Bereinigen und schließen Sie den Stream

Sitemap Index

Imports System.Data

Imports System.Data.SqlClient

Imports System.Xml

Partial Class Generate_SitemapIndex

   Inherits System.Web.UI.Page

   Dim conStr As String = ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       Response.Clear()

       Response.ContentType = "text/xml"

       Response.Charset = "Utf-8"

       Dim xtwFeed As XmlTextWriter = New XmlTextWriter(Response.OutputStream, Encoding.UTF8)

       xtwFeed.WriteStartDocument()

       Using con As New SqlConnection(conStr)

           Dim com As New SqlCommand("SELECT {SitemapUrl},{SitemapModified} FROM {YourDatabase}", con)

           Dim ds As New DataSet, da As New SqlDataAdapter(com)

           con.Open()

           da.Fill(ds)

           xtwFeed.WriteStartElement("sitemapindex")

           xtwFeed.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9")

           Dim dr = ds.Tables(0).CreateDataReader

           While dr.Read

               xtwFeed.WriteStartElement("sitemap")

               xtwFeed.WriteElementString("loc", dr.Item(0).ToString) 'OR full URL from your database!

               xtwFeed.WriteElementString("lastmod", dr.Item(1).ToString) 'ISO1806 format date.

               xtwFeed.WriteEndElement()

           End While

           xtwFeed.WriteEndElement()

       End Using

       xtwFeed.WriteEndDocument()

       xtwFeed.Flush()

       xtwFeed.Close()

       Response.End()

   End Sub

End Class

Sitemap

Imports System.Data

Imports System.Data.SqlClient

Imports System.Xml


Partial Class Generate_Sitemap

   Inherits System.Web.UI.Page

   Dim conStr As String = ConfigurationManager.ConnectionStrings("MySqlConnection").ConnectionString

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       Response.Clear()

       Response.ContentType = "text/xml"

       Response.Charset = "Utf-8"

       Dim xtwFeed As XmlTextWriter = New XmlTextWriter(Response.OutputStream, Encoding.UTF8)

       xtwFeed.WriteStartDocument()

       Using con As New SqlConnection(conStr)

           Dim com As New SqlCommand("SELECT {PageUrl},{PageModified},{PageChangeFreq},{PagePriority} FROM {YourDatabase}", con)

           Dim ds As New DataSet, da As New SqlDataAdapter(com)

           con.Open()

           da.Fill(ds)

           xtwFeed.WriteStartElement("urlset")

           xtwFeed.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9")

           Dim dr = ds.Tables(0).CreateDataReader

           While dr.Read

               xtwFeed.WriteStartElement("url")

               xtwFeed.WriteElementString("loc", dr.Item(0).ToString) 'full URL from your database!

               xtwFeed.WriteElementString("lastmod", dr.Item(1).ToString) 'ISO1806 format date.

               xtwFeed.WriteElementString("changefreq", dr.Item(2).ToString) 'daily, weekly, monthly etc

               xtwFeed.WriteElementString("priority", dr.Item(3).ToString) 0.0 to 1.0

               xtwFeed.WriteEndElement()

           End While

           xtwFeed.WriteEndElement()

       End Using

       xtwFeed.WriteEndDocument()

       xtwFeed.Flush()

       xtwFeed.Close()

       Response.End()

   End Sub

End Class

Author

Helpful?

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

Website-Design von Claytabase

Dies ist ein Codeabschnitt, der aus dem Code des Ousia Content Management System modifiziert wurde, einem der schnellsten und am besten optimierten Systeme auf dem Markt, Teil unserer Website-Design-Services.

mehr: Reaktionsschnell und schnell. Webentwicklung, Design und Hosting mit Content Management System
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Cookie-RichtlinieSeitenverzeichnis

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
Die Einstellungen auf dieser Seite sind so eingestellt, dass alle Cookies zulässig sind. Diese können auf unserer Cookie Policy & Settings Seite geändert werden. Wenn Sie diese Seite weiter nutzen, stimmen Sie der Verwendung von Cookies zu.
Ousia Logo
Logout
Ousia CMS Loader