Web design and hosting, database, cloud and social media solutions that deliver business results
  • Obchodní řešení
    • Databázové služby
      • Integrace dat
    • Robotická automatizace procesů
    • Návrh webových stránek
      • Zabezpečení webových stránek
    • Obchodní služby
      • Microsoft Azure
    • Microsoft Office
    • Sociální Média
  • Akademie
    • Výuka návrhu databáze
      • Zprávy
      • Pomocí serveru SQL Pivot-Unpivot
      • Použití dat serveru SQL Server
      • Používání funkcí dat serveru SQL Server
      • Používání funkcí serveru SQL Server
      • SQL Server 2008 plán údržby
    • Výuka designu webových stránek
      • CSS
      • ASP NET
  • O nás
    • Portfolio
    • tým
      • Gavin Clayton
      • Chester Copperpot
      • Suneel Kumar
č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)

Vytvoření XML Sitemap z SQL Serveru v ASP NET

Vytvoření XML Sitemap z SQL Serveru v ASP NET

O

V procesu navrhování našeho systému pro správu obsahu jsme věděli, že bude nutné zahrnout soubor Sitemap, aby bylo možné rychle objevit obsah různými prohledávači, které vyhledávače používají.

Vzhledem k tomu, že náš systém již má databázi za sebou, byla jasná volba použít tato data a vytvořit soubor dynamicky.

Systém potřeboval, aby byl schopen zpracovat velké množství stránek, takže pro vestavěnou redundanci jsme vytvořili indexovou stránku sitemap, která pak odkazuje na mapy stránek.

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>

Jak to vygenerovat

Generování kódu jsem pro usnadnění čtení rozdělil do dvou tříd, ale pokud chcete, lze je kombinovat.

Generování je připojeno k události načtení stránky, ale je poměrně jednoduché.

  • Nastavte typ obsahu odpovědi jako text/xml a kódování jako utf-8
  • Vytvořte XML Text Writer a začněte psát dokument
  • Vytvořte připojení SQL pomocí připojovacího řetězce uloženého ve webovém konfiguračním souboru
  • Získejte všechny možné hodnoty z databáze a vložte je do datové sady pro čtení
  • Napište první prvek (sitemapindex nebo urlset), to je vyžadováno jako součást standardu, a nastavte schéma
  • Spusťte smyčku přes datovou sadu
    • Napište požadovaný prvek (mapa webu nebo adresa URL)
    • Napište požadované atributy pro každý prvek
  • Vyčistěte a zavřete potok

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.

Design webových stránek Claytabase

Toto je část kódu, která byla upravena z kódu systému správy obsahu Ousia, jednoho z nejrychlejších a nejvíce optimalizovaných systémů na trhu, který je součástí našich služeb v oblasti designu webových stránek.

více: Citlivé a rychlé. Vývoj webu, design a hosting s redakčním systémem
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Cookie Policymapa stránek

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
Nastavení na této stránce jsou nastaveny povolit všechny soubory cookie. Ty mohou být změněny na našich zásad a nastavení stránky cookie. Nadále používat tento web souhlasíte s použitím cookies.
Ousia Logo
Logout
Ousia CMS Loader