XML Linq
Posted on 2010-04-10
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));