1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 292
    Points : 96
    Points
    96

    Par défaut Recherche à travers un fichier XML

    Bonsoir,
    j'ai crée un fichier XML contenant une liste de codes d'erreurs avec leurs significations, mais je ne sais pas comment chercher un code particulier.
    Mon fichier est structuré de la façon suivante,voici un exemple.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="utf-8"?>
    <ListingCodeErreur>
    <Erreur ID="1100" ><Definition classe="1" Plage="Général" Text="Paramètres en dehors de la plage de valeurs autorisées"/></Erreur>
    <Erreur ID="1101" ><Definition classe="" Plage="Général" Text="Le Paramètre index n'existe pas"/></Erreur>
    ...
    <Classe ID="0" ><Definition Text="Avertissement (aucune réaction)" Couleur='#145A14'></Classe>
    </ListingCodeErreur>
    Je cherche une solution pour récupérer les infos associés à un code erreur.
    Je pensais créer une structure contenant les infos associées à mon code erreur, par exemple
    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
     
        public struct ID_Erreur
        {
            public UInt16 ID;
            public byte Classe;
            public string Plage;
            public string Texte;
        }
     
        public struct Classe_Erreur
        {
            public UInt16 ID;
            public string Texte;
            public string Color;
        }
    Quelle est la meilleure méthode pour lire ce fichier XML ?

    Merci

  2. #2
    Membre chevronné
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    1 121
    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 : 1 121
    Points : 1 787
    Points
    1 787

    Par défaut

    Je vois deux possibilités simples à mettre en oeuvre.

    La première consiste à déserialiser ton XML vers une liste de ID_Erreur (il faudra utiliser une classe au lieu d'une structure)
    Et ensuite rechercher ce qu'il te faut avec une requête Linq
    https://stackoverflow.com/questions/...-xml-to-object
    https://docs.microsoft.com/fr-fr/dot...e-linq-queries

    La deuxième méthode consiste à utiliser XPath pour sélectionner le nœud qui 'intéresse.
    https://docs.microsoft.com/fr-fr/dot...ath-navigation

  3. #3
    Membre expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    octobre 2008
    Messages
    1 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 651
    Points : 3 423
    Points
    3 423
    Billets dans le blog
    6

    Par défaut

    @Popo : +1 pour la serialization

    Il y a plein de sujet à ce propos sur le forum...regardes dans les sujets récents qui traitent de xml.

    ++

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 292
    Points : 96
    Points
    96

    Par défaut

    Merci pour les liens mais Je n'arrive pas à décomposer mes lignes.
    Dans les exemples chaque est bien séparé par exemple
    <Step><Name>Name1</Name><Desc>Desc1</Desc></Step>
    dans mon cas je ne sais pas comment découper mes lignes
    <Erreur ID="1100" ><Definition classe="3" Plage="Général" Text="Paramètres"/></Erreur
    j'ai commencé à écrire la classe
    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
    [XmlRoot("ErreurList")]
    public class ErreurList
    {
        [XmlElement("Erreur")]
        public List<Erreur> Erreurs { get; set; }
    }
     
    public class Erreur
    {
        [XmlElement("ID")]
        public string ID { get; set; }
     
        [XmlElement("Classe")]
        public string Classe { get; set; }
     
        [XmlElement("Plage")]
        public string Plage { get; set; }
     
        [XmlElement("Text")]
        public string Text { get; set; }
    }
    et j'ai essayé ça pour la lecture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                XmlSerializer serializer = new XmlSerializer(typeof(ErreurList));
                using (FileStream fileStream = new FileStream("ConfigErreur.xml", FileMode.Open))
                {
                    ErreurList result = (ErreurList)serializer.Deserialize(fileStream);
                }
    mais je ne comprends pas comme réaliser la serialization et surtout comment je passe en paramètre 1100 et que cela me ressorte la ligne associé.

    Merci

  5. #5
    Membre expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    octobre 2008
    Messages
    1 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 651
    Points : 3 423
    Points
    3 423
    Billets dans le blog
    6

    Par défaut

    Bonjour,

    La solution est ICI


    ++

Discussions similaires

  1. [XSLT] Comment rechercher dans un fichier xml
    Par abdoulax dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/10/2006, 19h28
  2. Probleme dans mon code recherche dans un fichier Xml
    Par dederfred dans le forum Delphi
    Réponses: 11
    Dernier message: 21/10/2006, 16h51
  3. [XML] Recherche Banque de fichiers XML pour tester
    Par MoTUmBo dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/10/2006, 11h08
  4. Faire une recherche dans un fichier XML
    Par Devilish_Seraph dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 21/01/2006, 13h41
  5. recherche dans un fichier xml (castor)
    Par pingoui dans le forum XML
    Réponses: 8
    Dernier message: 06/09/2004, 14h28

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