Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. C# 10
  3. LINQ to XML
Extrait - C# 10 Développez des applications Windows avec Visual Studio 2022
Extraits du livre
C# 10 Développez des applications Windows avec Visual Studio 2022
4 avis
Revenir à la page d'achat du livre

LINQ to XML

Les objets XML

LINQ to XML est une implémentation du langage de requête pour les documents XML. L’espace de noms System.Xml.Linq expose les objets permettant de travailler avec des documents XML en mémoire de manière simple.

1. XDocument

La classe XDocument représente le document XML. Elle contient les membres pour accéder aux autres objets de type XElement, XNamespace, XComment et XAttribute.

Les deux méthodes les plus importantes de cette classe sont Load et Save. La méthode statique Load permet de charger un document XML depuis un chemin ou depuis une URL et de le stocker en mémoire, dans un objet XDocument :

XDocument xDocument = XDocument.Load(@"C:\monFichier.xml"); 

Le document XML peut également provenir d’un objet TextReader ou XmlReader et passé en argument à la méthode Load.

Une fois le document chargé en mémoire, il est possible de travailler avec ses propriétés :

string s1 = xDocument.Root.Name.ToString(); 
string s2 = xDocument.FirstNode.NodeType.ToString(); 

L’autre méthode importante de la classe XDocument est la méthode Save qui permet de sauvegarder le document XML en mémoire dans un fichier sur disque, un objet TextWriter ou un objet XmlWriter :

xDocument.Root.Add(new XAttribute("NouvelAttribut", 
                                 "NouvelleValeur")); 
xDocument.Save(@"C:\monFichier.xml"); 

2. XElement

L’un des types fréquemment utilisés pour travailler avec les documents XML est XElement. Vous pouvez créer des éléments qui sont eux-mêmes des documents XML, ou créer des parties...

Exécuter des requêtes avec LINQ

LINQ permet de réaliser des requêtes sur un document XML. Les objets présentés précédemment XDocument, XElement ou encore XAttribute permettent d’extraire les données souhaitées. 

Les requêtes LINQ to XML suivent les mêmes principes que la syntaxe LINQ générale.

Les exemples suivants sont basés sur le fichier d’exemple LinqToXML.xml :

<?xml version="1.0" encoding="utf-8"?> 
<SelMailer> 
  <MailServer ID="1"> 
    <Host>mail.mondomaine.com</Host> 
    <Username>monUtilisateur</Username> 
    <Password>monMotDePasse</Password> 
  </MailServer> 
  <MailServer ID="2"> 
    <Host>mail.mondomaine2.com</Host> 
    <Username>monUtilisateur2</Username> 
    <Password>monMotDePasse2</Password> 
  </MailServer> 
  <Sender ID="1"> 
    <Name>mon nom</Name> 
    <Email>email@mondomaine.com</Email> 
  </Sender> 
  <MailServerSender MailServerID="1"...