ASP NET में SQL सर्वर से XML साइटमैप का निर्माण
के बारे में
हमारी सामग्री प्रबंधन प्रणाली को डिजाइन करने की प्रक्रिया में, हम जानते थे कि खोज इंजन द्वारा उपयोग किए जाने वाले विभिन्न क्रॉलर द्वारा सामग्री की तेजी से खोज को सक्षम करने के लिए साइटमैप फ़ाइल को शामिल करने की आवश्यकता होगी।
चूंकि हमारे सिस्टम के पीछे पहले से ही एक डेटाबेस है, इसलिए स्पष्ट विकल्प इस डेटा का उपयोग करना और फ़ाइल को गतिशील रूप से बनाना था।
सिस्टम को बहुत सारे पृष्ठों को संभालने में सक्षम होने की आवश्यकता थी, इसलिए बिल्ट इन रिडंडेंसी के लिए हमने एक साइटमैप इंडेक्स पेज बनाया है जो साइटमैप में लिंक करता है।
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-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us-Us</loc>
<lastmod>2013-12-09</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
</urlset>
इसे कैसे उत्पन्न करें
मैंने पढ़ने में आसानी के लिए कोड जनरेशन को दो वर्गों में विभाजित किया है, लेकिन यदि आप चाहें तो इसे जोड़ा जा सकता है।
पीढ़ी को पेज लोड इवेंट में जोड़ा गया है, लेकिन यह काफी सरल है।
- प्रतिक्रिया सामग्री प्रकार को टेक्स्ट/एक्सएमएल और एन्कोडिंग को utf-8 के रूप में सेट करें
- XML टेक्स्ट राइटर बनाएं और दस्तावेज़ लिखना शुरू करें
- वेब कॉन्फ़िगरेशन फ़ाइल में सहेजी गई कनेक्शन स्ट्रिंग का उपयोग करके SQL कनेक्शन बनाएं
- अपने डेटाबेस से सभी संभावित मान प्राप्त करें और उन्हें पढ़ने के लिए डेटासेट में पुश करें
- पहला तत्व (साइटमैपइंडेक्स या यूआरएलसेट) लिखें, यह मानक के हिस्से के रूप में आवश्यक है, और स्कीमा सेट करें
- डेटासेट के माध्यम से एक लूप प्रारंभ करें
- आवश्यक तत्व लिखें (साइटमैप या यूआरएल)
- प्रत्येक तत्व के लिए आवश्यक विशेषताएँ लिखें
- स्ट्रीम को साफ और बंद करें
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
क्लेटाबेस द्वारा वेबसाइट डिजाइन
यह कोड का एक भाग है जिसे Ousia सामग्री प्रबंधन प्रणाली कोड से संशोधित किया गया है, जो बाजार पर सबसे तेज और सबसे अनुकूलित प्रणालियों में से एक है, जो हमारी वेबसाइट डिजाइन सेवाओं का हिस्सा है।