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
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.
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
20
Giugno
Facebook rilascia l'SDK c#
Maurizio Ceravolo
Facebook ha appena rilasciato l'SDK ufficiale per sviluppare applicazioni che si interfacciano con Facebook utilizzando il c#.
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
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.


Archivio Mensile Blog
Tag Cloud
Apple browser cloud Facebook finanza geek Google Google Immagini Google+ humor innovazione iPhone Microsoft parodia Programmazione ricerca SEO social network social plugin video
Ultimi Post
I migliori di oggi
I più popolari del mese
Top post