5

Click here to load reader

Linq to Xml

Embed Size (px)

Citation preview

Page 1: Linq to Xml

Linq to Xml Auteur: Hoang NGUYEN

Page 2: Linq to Xml

Introduction

Linq to xml (aussi nommé XLinq) est une technologie qui révolutionne la façon de travailler avec les documents Xml depuis le framework 3.5.

Tout devient plus simple et plus fluide grâce à l’utilisation des classes génériques. L’exemple suivant permet de comparer l’ancienne méthode (Xml Dom) avec la nouvelle méthode (Linq to Xml).

Exemple

Nous avons ici un fichier xml tout simple qui présente des catégories de bouquins:

17/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 2

Page 3: Linq to Xml

Voici ce que nous devions faire auparavant pour créer ce document Xml :

Nous nous sommes bien d’accord que cette méthode est verbeuse et ne donne pas une vision claire de la structure Xml.

Avec Linq to Xml, voici ce que ça donne :

17/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 3

Page 4: Linq to Xml

Dans cet exemple de code, nous avons utilisé les 3 classes principales XDocument, XElement, XAttribute qui se trouvent dans System.Xml.Linq.dll

Pour sauvegarder ce document, il suffit d’appeler la méthode Save, comme suit :

doc.Save("test.xml");

Quelques exemples avec Linq :

Pour chercher les bouquins dans la catégorie ayant « id » égal à 1 :

var res = from c in doc.Descendants("Category")

where (int) c.Attribute("id") ==1

select c;

Pour créer ce document xml grâce à une source qui contient la collection de bouquins par exemple : source.Books.

Voici comment on peut faire:

N’est-ce pas génial ça ?

17/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 4

Page 5: Linq to Xml

Conclusion

Linq to Xml propose une approche plus intuitive dans le développement avec Xml car il permet d’avoir une meilleure lecture du code.

La famille de la technologie Linq fournit bien évidement d’autres outils astucieux, comme Linq to Entity / Linq to Object / Linq to Sql qui est plutôt expliqué dans le lien msdn suivant :

http://msdn.microsoft.com/fr-fr/library/bb397926.aspx

17/01/2012 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - [email protected] 5