Blog
home > blog > Vb.net, creare una data in formato W3C per una sitemap

Tag: Programmazione, .Net, W3C, sitemap

Vb.net, creare una data in formato W3C per una sitemap

Per creare una sitemap.xml occorre inserire le date nel formato definito dal W3C, che non è nativo in .net. Vediamo un modo semplice per generarle.
di Maurizio Ceravolo
Penso che questo sia un problema che ogni programmatore .net abbia affrontato ogni volta che abbia cercato di generare una sitemap. Le date in formato W3C.

Per chi non lo sapesse la sitemap è un semplice file xml che risiede (o meglio che dovrebbe risiedere) nella sitemap di ogni sito per facilitare l'indicizzazione da parte dei motori di ricerca. Le sitemap sono adottate dai principali motori di ricerca, in particolare da Google, da Yahoo e da Bing. Il protocollo è molto semplice ed è facile da implementare. L'unica cosa particolare in effetti è il modo in cui è richiesto siano scritte le date.

Vediamo un xml di esempio tratto dal sito ufficiale della sitemaps:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <sitemap>
      <loc>http://www.esempio.it/sitemap1.xml.gz</loc>
      <lastmod>2004-10-01T18:23:17+00:00</lastmod>
   </sitemap>
   <sitemap>
      <loc>http://www.esempio.it/sitemap2.xml.gz</loc>
      <lastmod>2005-01-01</lastmod>
   </sitemap>
</sitemapindex>

Come vedete nel primo nodo sitemap, c'è un tag lastmod che indica la data di ultima modifica della file indicato nel tag loc. La data può essere scritta con o senza orario. Senza orario il formato è molto semplice da ottenere basta un codice del tipo

DataUltimaModifica.ToString("yyyy-MM-dd")

Ma per ottenere il formato con l'orario, non abbiamo nessuna primitiva .net che ci permetta di ottenere il risultato voluto. Occorre metterci un pochino le mani, ma sapendo come, è altrettanto semplice. Vediamo come:

DataUltimaModifica.ToUniversalTime.ToString("u").Replace(" ", "T"))

In pratica con il metodo ToUniversalTime otteniamo quasi quello che ci serve. Il problema è che la dato e l'orario sono separati da uno spazio. E quindi noi sostituiamo lo spazio con la T richiesta dal formato, per ottenere il risultato voluto.

Happy coding. :-)
Post correlati
2010
13
Ottobre
Inviare fax da una applicazione usando .net
Maurizio Ceravolo
Descrizione di due opzioni per mandare fax attraverso una proprio applicazione: collegandosi ad un servizio esterno o usando WinFax in interoperabilità
2011
25
Febbraio
Realizzare un Eval in .net
Maurizio Ceravolo
Vediamo come implementare una funzione di Eval come quella del Javascript per valutare espressioni aritmetiche in .net. È molto facile.
2011
15
Febbraio
.net: instanziare un web service con certificato scaduto
Maurizio Ceravolo
Richiamare un web service sotto https con certificato scaduto porta l'applicazione a sollevare un eccezione. Vediamo come ignorarla e fruire lo stesso del servizio.
2010
24
Novembre
UrlRewrite e Postback: il problema sull'action del form in asp.net
Maurizio Ceravolo
Sperimentando l'UrlRewrite in un sito .net ci si scontra con un errore sui postback. Vediamo come risolverlo
2011
19
Aprile
Cambiare l'indirizzo del proprio sito senza penalizzare il pagerank
Maurizio Ceravolo
Quando si decide di spostare il proprio sito ad un altro indirizzo occorre fare alcune operazioni per non perdere il pagerank guadagnato con tanto lavoro.


Archivio Mensile Blog
Tag Cloud
Apple evoluzionismo digitale Facebook finanza geek Geolocalizzazione Google Google+ humor innovazione Microsoft mobile privacy social network social plugin stampa 3D stupidità video web marketing Windows 8
Ultimi Post
I migliori di oggi
I più popolari del mese
Top post