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 :

Parsing de fichier XML


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 46
    Par défaut Parsing de fichier XML
    Bonjour,

    J'ai un fichier XML de ce type :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Client name="Na">
    	<SITE>
    		BUC
    		<OPCServer Specification="DA">
    			<hostname>
    				localhost
    			</hostname>
    			<name>
    				Matrikon.OPC.Simulation.1
    			</name>
    			<itemsID>
    				test.arrStr
    				test.bool
    				test.str
    				test.time	
    			</itemsID>
    		</OPCServer>
    		<OPCServer Specification="HDA">
    			<hostname>
    				localhost
    			</hostname>
    			<name>
    				Matrikon.OPC.Simulation.1
    			</name>
    			<itemsID>
    				test.arrStr
    				test.bool
    				test.str
    				test.time	
    			</itemsID>
    		</OPCServer>
    	</SITE>	
    	<SITE>
    		Guyancourt
    		<OPCServer Specification="DA">
    			<hostname>
    				localhost
    			</hostname>
    			<name>
    				Matrikon.OPC.Simulation.1
    			</name>
    			<itemsID>
    				test.arrStr
    				test.bool
    				test.str
    				test.time	
    			</itemsID>
    		</OPCServer>
    	</SITE>	
    </Client>
    <Client name="Toto">
    	<SITE>
    		Saint-Denis
    		<OPCServer Specification="DA">
    			<hostname>
    				localhost
    			</hostname>
    			<name>
    				Matrikon.OPC.Simulation.1
    			</name>
    			<itemsID>
    				test.arrStr
    				test.bool
    				test.str
    				test.time	
    			</itemsID>
    		</OPCServer>
    		<OPCServer Specification="HDA">
    			<hostname>
    				localhost
    			</hostname>
    			<name>
    				Matrikon.OPC.Simulation.1
    			</name>
    			<itemsID>
    				test.arrStr
    				test.bool
    				test.str
    				test.time	
    			</itemsID>
    		</OPCServer>
    	</SITE>	
    	<SITE>
    		Velizy
    		<OPCServer Specification="DA">
    			<hostname>
    				localhost
    			</hostname>
    			<name>
    				Matrikon.OPC.Simulation.1
    			</name>
    			<itemsID>
    				test.arrStr
    				test.bool
    				test.str
    				test.time	
    			</itemsID>
    		</OPCServer>
    	</SITE>	
    </Client>
    J'aimerais récupérer toutes les données de ce fichier classée de la même manière dans une variable.

    Est-ce que c'est possible ?

    Comment faire ?

    J'ai essayé avec les objets XmlDocument, XmlNode, XmlNodeList mais je m'en sors pas ..

    Cordialement

    Winflow

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Tu as les bons outils. Peut-être juste pas tombé sur le bon tuto.

    Tu peux aussi utiliser LINQ pour parcourir du xml.

    Ou faire des classes qui représente ton fichier xml et utiliser la sérialisation/désérialisation xml pour tout charger.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 46
    Par défaut
    J'ai vu des tutos sur LINQ mais je n'arrive pas a le mettre en place pourtant ça à l'air beaucoup plus simple à faire

    [EDIT]

    J'avais pas mis le using System.Xml.linq; --'

    [/EDIT]

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2013
    Messages : 13
    Par défaut
    Bonjour,
    je viens également de découvrir la sérialisation XML, et j'ai pu l'appliquer en un claquement de doigt grâce à :

    Sérialisation

    et

    Désérialisation

    Le principe est de construire une classe ou une structure qui reprend tous tes nœuds en tant qu'attributs.

    Par exemple dans mon cas je suis en train de faire un répertoire de vocabulaire, j'ai :
    - une structure Definition
    - une structure Repertoire qui contient une liste de Definition
    - la (dé)sérialisation s'opère sur Repertoire

    C'est fantastique ça fait tout tout seul en une 20aine de lignes.

    Bon courage!

    Edit :

    En revanche je viens de regarder ton XML, je crois qu'il est ce que l'on appelle "mal formé" : tu dois avoir une balise unique englobante, (autour de tes "Client".
    Avec ton fichier, tu aurais en fait :

    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
     public struct Clients {
    	public List<Client> _listeClient;
     }
     
     public struct Client{
    	public Site _site;
     }
     
     public struct Site {
    	List<OPCServer> _listeOPC;
     }
     
     public struct OPCServer{
    	public string _hostname;
    	public string _name;
    	public List<String> _itemsID;
     }
    Avec la sérialisation qui s'opère sur Clients.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 46
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string site = iter.Current.SelectSingleNode("SITE").Value;
    Cette ligne ne fonctionne pas NullReferenceException.

Discussions similaires

  1. [JDOM] Problème avec le parsing du fichier XML
    Par nounouuuuu201186 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 10/02/2012, 14h08
  2. Parsing de fichiers XML : Exception bien bizarre
    Par Grumpy64 dans le forum Android
    Réponses: 11
    Dernier message: 06/11/2010, 14h32
  3. Réponses: 3
    Dernier message: 14/11/2009, 09h26
  4. [SAX] Resultat d'un parsing de fichier XML
    Par t.n.b.g dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 07/03/2008, 16h12
  5. Parsing de fichier XML en C
    Par longbeach dans le forum XML
    Réponses: 12
    Dernier message: 12/12/2006, 16h31

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