Creazione di Sitemap video in LINQ to XML



LINQ to XML è una delle novità introdotte nel framework 3.5 di ASP.NET (assemply System.Xml.Linq) con cui è stata potenziata e facilitata la manipolazione di file e dati nel formato XML.

Vediamo come è possibile realizzare in linguaggio C# una sitemap video di Google:
<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″
xmlns:video=”http://www.google.com/schemas/sitemap-video/1.1″>
<url>
<loc>http://www.example.com/video/qualsiasi_pagina_di_destinazione_video.html</loc>
<video:video>
<video:content_loc>http://www.site.com/video123.flv</video:content_loc>
<video:player_loc allow_embed=”yes” autoplay=”ap=1″>http://www.site.com/videoplayer.swf?video=123</video:player_loc>
<video:thumbnail_loc>http://www.example.com/thumbs/123.jpg</video:thumbnail_loc>
<video:title>Bistecche alla griglia per l’estate</video:title>
<video:description>Come ottenere bistecche sempre perfette</video:description>
<video:rating>4.2</video:rating>
<video:view_count>12345</video:view_count>
<video:publication_date>2007-11-05T19:20:30+08:00.</video:publication_date>
<video:tag>bistecca</video:tag>
<video:tag>carne</video:tag>
<video:tag>estate</video:tag>
<video:category>Barbecue</video:category>
<video:family_friendly>yes</video:family_friendly>
<video:expiration_date>2009-11-05T19:20:30+08:00</video:expiration_date>
<video:duration>600</video:duration>
</video:video>
</url>
</urlset>

XNamespace ns = “http://www.sitemaps.org/schemas/sitemap/0.9”;
XNamespace gv = “http://www.google.com/schemas/sitemap-video/1.1”;

var sitemap = new XDocument(new XDeclaration(“1.0”, “utf-8”, “yes”),
new XElement(ns + “urlset”,
new XAttribute(“xmlns”, “http://www.sitemaps.org/schemas/sitemap/0.9”),
new XAttribute(XNamespace.Xmlns + “video”, “http://www.google.com/schemas/sitemap-video/1.1”),
new XElement(ns + “url”,
new XElement(ns + “loc”, “http://www.example.com/video/qualsiasi_pagina_di_destinazione_video.html”),
new XElement(gv + “video”,
new XElement(gv + “content_loc”, “http://www.site.com/video123.flv”),
new XElement(gv + “player_loc”, new XAttribute(“allow_embed”, “yes”), new XAttribute(“autoplay”, “ap=1”), “http://www.site.com/videoplayer.swf?video=123”),
new XElement(gv + “thumbnail_loc”, “http://www.example.com/thumbs/123.jpg”),
new XElement(gv + “title”, “Bistecche alla griglia per l’estate”),
new XElement(gv + “description”, “Come ottenere bistecche sempre perfette”),
new XElement(gv + “rating”, 4.2),
new XElement(gv + “view_count”, 12345),
new XElement(gv + “publication_date”, “2007-11-05T19:20:30+08:00.”),
new XElement(gv + “tag”, “bistecca”),
new XElement(gv + “tag”, “carne”),
new XElement(gv + “tag”, “estate”),
new XElement(gv + “category”, “Barbecue”),
new XElement(gv + “family_friendly”, “yes”),
new XElement(gv + “expiration_date”, “2009-11-05T19:20:30+08:00.”),
new XElement(gv + “duration”, 600)
)
)
)
);

Il codice diventa molto più snello e di facile lettura.

Per comporre l’elenco dei video prima della dichiarazione dell’elemento “url” diventa molto comodo inserire un:

from video in videos
select

dove videos è una vostra collection di dati.
Stessa cosa per lo sviluppo dei “tag”:

from tag in tags
select
new XElement(gv + "tag", tag)

Per maggiori informazioni su LINQ to XMl vi rimando alla documentazione ufficiale.

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest