Récupérer la valeur d’un nœud d’un fichier XML en C#
Pour rechercher des nœuds dans un fichier XML, vous pouvez utiliser des expressions XPath. La méthode XmlNode.SelectNodes renvoie une liste de noeuds sélectionnés par la chaîne XPath. La méthode XmlNode.SelectSingleNode recherche le premier nœud qui correspond à la chaîne XPath.
Supposons que nous ayons ce fichier XML.
<Personnes> <Personne> <Name>Alex Babtise</Name> <Age>25</Age> <Address>Paris, France</Address> </Personne> <Personne> <Name>Bob Laurent</Name> <Age>30</Age> <Address>Lile, France</Address> </Personne> </Personnes>
Pour obtenir tous les nœuds <Personne>, utilisez XPath avec l’expression /Personnes/Personne. La première « / » signifie que le nœud <Personnes> doit être un nœud racine. La méthode SelectNodes renvoie la collection XmlNodeList qui contiendra les nœuds <Personne>. Pour obtenir la valeur du sous-noeud <Name>, vous pouvez simplement indexer XmlNode avec le nom du noeud: xmlNode["Name"].InnerText
. Voir l’exemple ci-dessous.
//Créer un document XML XmlDocument xmlDocument = new XmlDocument(); //Lire le fichier XML xmlDocument.Load("D:\\file.xml"); //Créer une liste de nœuds XML avec l'expression XPath XmlNodeList xmlNodeList = xmlDocument.SelectNodes("/Personnes/Personne"); foreach (XmlNode xmlNode in xmlNodeList) { string Name = xmlNode["Name"].InnerText; string Age = xmlNode["Age"].InnerText; string Address = xmlNode["Address"].InnerText; Console.WriteLine("Name: {0} Age : {1} Address : {2}", Name, Age, Address); }
La sortie :
Name : Alex Babtise Age : 25 Address : Paris, France Name : Bob Laurent Age : 30 Address : Lile, France