IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Lecture fichier XML


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut Lecture fichier XML
    Bonjour à tous,

    voilà ma situation , je cherche à utiliser un doc XML comme mini-base de données pour une dll. Voici ce doc :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?xml version = "1.0" encoding="ISO8859-1" standalone="yes" ?>
     
    <Root>
      	<Machines>	
        		<Machine>
          			<Name>FLUO</Name>
          			<Types_accepted>
            			<Type_accepted>
    	  				<NameType>.txt</NameType>
            			</Type_accepted>
    				<Type_accepted>
    	  				<NameType>.pdf</NameType>
            			</Type_accepted>
          			</Types_accepted>
        		</Machine>
        		<Machine>
          			<Name>ICP</Name>
          			<Types_accepted>
            			<Type_accepted>
    	  				<NameType>.xls</NameType>
            			</Type_accepted>
          			</Types_accepted>
        		</Machine>  
        		<Machine>
          			<Name>LPS</Name>
          			<Types_accepted>
            			<Type_accepted>
    	  				<NameType>.txt</NameType>
            			</Type_accepted>
          			</Types_accepted>
        		</Machine>    
      	</Machines>
    </Root>

    Je souhaite donc accéder à certaines informations à l’intérieur, je débute dans le domaine du traitement C#-XML , je sais pas trop comment m'y prendre ?
    Je sais que pour le lire entièrement j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    using System;
    using System.Collections.Generic;
    using System.Xml.Linq;
     
    namespace LinkBDDXml
    {
        class Program
        {
            static void Main(string[] args)
            {
                XDocument xdocument = XDocument.Load("../Base.xml");
                IEnumerable<XElement> machines = xdocument.Root.Elements();
                foreach (var machine in machines)
                {
                    Console.WriteLine(machine);
                }
            }
        }
    }
    Mais j'avoue que je comprend pas réellement de quoi fonctionne comment ?

    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut
    J'ajoute des précisions , j'arrive à accéder par exemple à tous les machines comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    static void Main(string[] args)
            {
     
     
                XmlDocument xmlDocument = new XmlDocument();
     
                //Lire le fichier XML
                xmlDocument.Load(".../Base.xml");
     
                //Créer une liste de nœuds XML avec l'expression XPath
                XmlNodeList xmlNodeList = xmlDocument.SelectNodes("/Root/Machines/Machine");
     
     
                foreach (XmlNode xmlNode in xmlNodeList)
                {
                    string Name = xmlNode["Name"].InnerText;
                    Console.WriteLine("Name: {0}", Name);
                }
     
            }
    mais par exemple j'aimerai précisé : Pour X Machine je veux que tu m'affiche tout les types correspondants .

    En sortie : FLUO 1,1,0,0,0

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Regarde du côté d'Xpath :

    //Machine/Name | //Machine/descendant::Type_accepted
    qui produit :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Name>FLUO</Name>
    <Type_accepted>.txt</Type_accepted>
    <Type_accepted>.pdf</Type_accepted>
    <Name>ICP</Name>
    <Type_accepted>.xls</Type_accepted>
    <Name>LPS</Name>
    <Type_accepted>.txt</Type_accepted>

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 669
    Points : 5 238
    Points
    5 238
    Par défaut
    Le plus simple est de créer la structure Objet correspondante et de désérialiser.
    Cela facilitera la lecture et la recherche

  5. #5
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut
    Ok merci pour vos réponses , avec xPath c'est nikel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lecture fichier XML
    Par bhahmed dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/09/2006, 08h40
  2. [C#-XML] - Problème de lecture fichier XML
    Par Gloups dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/08/2006, 00h40
  3. Lecture fichier xml aux caracteres accentués
    Par LFC dans le forum Modules
    Réponses: 2
    Dernier message: 13/02/2006, 19h45
  4. Réponses: 3
    Dernier message: 09/12/2005, 17h42
  5. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo