Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

LINQ: creare nodi XML tramite query (Visual Basic 2008)

Con LINQ-to-Xml è possibile aggiungere nodi ed elementi XML in maniera dinamica. Ciò significa che non siamo vincolati a documenti XML dal contenuto prestabilito, come ad esempio quello del precedente post. Infatti, a partire da una sorgente dati e con una query, è possibile creare nodi, elementi ed attributi a seconda dei dati desiderati.

Un esempio sarà sicuramente chiarificatore. Supponiamo di avere una collection generica di sviluppatori: Alessandro, Mario e Diego (i nomi non sono affatto casuali! :-)). Alessandro e Mario sviluppano in .NET, Diego in VB 6. Dalla nostra collection vogliamo estrarre solo (ovviamente..) gli sviluppatori .NET e creare degli elementi XML per ciascuno sviluppatore. Per ciascun nodo, dovrà essere specificato un attributo che rappresenta il nome dello sviluppatore e un attributo che rappresenta la tecnologia.

Tutto questo si traduce, in codice Visual Basic 2008, in questo modo:

        Dim developers As New Dictionary(Of String, String)

 

        developers.Add("Alessandro", ".NET")

        developers.Add("Mario", ".NET")

        developers.Add("Diego", "VB6")

 

        Dim documento As XDocument = <?xml version="1.0"?>

                                     <Developers>

                                         <%= From developer In developers _

                                             Where (developer.Value = ".NET") _

                                             Select _

                                             <Developer Name=<%= developer.Key %> Platform=<%= developer.Value %>/> %>

                                     </Developers>

 

        Console.WriteLine(documento)

 

        Console.ReadLine()

La query LINQ fa questo: per ciascun elemento della collection (From developer in developers), laddove il valore della proprietà Value di ciascun oggetto nella collection sia uguale a ".NET", lo seleziona e crea un elemento XML i cui attributi, specificati tramite i tag riportanti il simbolo percentuale (di cui abbiamo parlato qui), sono rappresentati rispettivamente dalle proprietà Key e Value dell'elemento stesso della collection.

Questa è una importantissima feature di LINQ, soprattutto quando si ha necessità di lavorare in modo dinamico con documenti XML.

Alessandro

Print | posted on lunedì 3 marzo 2008 22:03 | Filed Under [ Visual Basic LINQ ]

Powered by:
Powered By Subtext Powered By ASP.NET