2018-06-24

XML Linq

Ce matin, je découvre XML Linq. Ayant déjà des connaissances dans Linq, ce nouvel espace de nom me semble très intéressant pour récupérer des paramètres de configuration. Selon moi, l’intérêt principal est de typer les données directement lors de la récupération des données.

Le plus simple est de partir d’un exemple :


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <userSettings>
   <setting name="Server">
     <value>server.domain.local</value>
   </setting>
   <setting name="ToEmailAddress" >
     <value>email1@domain.local</value>
     <value>email2@domain.local</value>
     <value>email3@domain.local</value>
   </setting>
 </userSettings>
</configuration>

Le code C# permettant de récupérer et d’afficher toutes les adresses emails est :

XElement xmlRoot = XElement.Load("MyDocument.xml");
int i = 0;

var list = from e in xmlRoot.XPathSelectElements("./userSettings/setting[@name='ToEmailAddress']/value")
           select new
           {
              ID = i++,
              Email = e.Value
           };

list.ToList().ForEach(e => Console.WriteLine("{0} = {1}", e.ID, e.Email));

1 thought on “XML Linq

Leave a Reply

Your email address will not be published. Required fields are marked *