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

VB.NET Discussion :

Extraction de données à partir d'un fichier Xml [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Shennong
    Homme Profil pro
    Technicien Informatique/Hotliner
    Inscrit en
    Février 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Informatique/Hotliner
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 186
    Par défaut Extraction de données à partir d'un fichier Xml
    Bonjour !

    Ne trouvant pas mon bonheur après moultes recherches, je me tourne vers vous en espérant trouver la solution à mon problème qui m'empêche d'avancer depuis presque une journée.

    Voilà, comme le titre l'indique, je souhaites récupérer des données à partir d'un fichier Xml (créé à partir d'un dxdiag). Voici le début du fichier Xml (les tirets sont justes pour mieux voir l'architecture) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <DxDiag>
    --<SystemInformation>
    ----<Time>9/18/2014, 10:48:49</Time>
    ----<MachineName>GLADIATOR</MachineName>
    ----<OperatingSystem>
    ------Windows 7 Professionnel 64-bit
    ----</OperatingSystem>
    ----<Language>French (Regional Setting: French)</Language>
    ----<SystemManufacturer>To Be Filled By O.E.M.</SystemManufacturer>
    ----<SystemModel>To Be Filled By O.E.M.</SystemModel>
    ----<BIOS>Default System BIOS</BIOS>
    ----<Processor>
    ------AMD Phenom(tm) II X4 965 Processor (4 CPUs), ~3.4GHz
    ----</Processor>
    Donc mon problème est le suivant, j'aimerai par exemple pouvoir afficher dynamiquement (au chargement de ma Form) dans un label le contenu du noeud "Processor", à savoir "AMD Phenom(tm) II X4 965 Processor (4 CPUs), ~3.4GHz".

    Voilà, je ne sais pas si c'est simple ou compliqué à faire, mais en tout cas je ne trouve pas de solution concrète. A savoir qu'un fichier MyDXdiag.xml est créé à la racine de C:, et c'est de là que sont tirées les informations à afficher.

    Merci de bien vouloir essayer de m'aider !

    A bientôt

    --
    Shennong

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Bonjour,

    Recherche du côté de la deserialization !

  3. #3
    Membre expérimenté
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Par défaut
    La beauté des langages Microsoft pour ma part est son magnifique support et forum d'aide
    la plupart des problèmes peuvent être résolut avec une recherche google en mettant le mot clé "msdn" avant t'as recherche

    doc xml : http://msdn.microsoft.com/fr-fr/libr...vs.110%29.aspx
    lien qui t'intéresse : http://msdn.microsoft.com/fr-fr/libr...vs.110%29.aspx

  4. #4
    Membre éclairé Avatar de Shennong
    Homme Profil pro
    Technicien Informatique/Hotliner
    Inscrit en
    Février 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Informatique/Hotliner
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 186
    Par défaut
    OK merci Ranzoken, mais ce genre de réponse inutile ne m'aide pas du tout. Ce que je voulais dire par "après moultes recherches" c'est : "j'ai cherché sur google, msdn et tutti quanti", mais je ne comprends pas comment utiliser les données trouvées ça et là pour effectuer le travail que je souhaite faire sur mon fichier Xml. Je ne suis pas expert en VB et je comprends certains points, mais pour arriver à se positionner sur un noeud et chercher un élément précis, puis extraire son contenu, je n'y parviens pas. Toutes ces méthodes et autres me sont obscures, les codes trouvés sur le net sont complexes pour moi aujourd'hui. Et je n'utilise jamais de code trouvé sur le net sans le comprendre avant, afin de pouvoir le réutiliser ultérieurement.

    Ainsi, j'aimerai que l'on me donne un exemple dans mon cas précis que je puisse comprendre comment cela fonctionne à partir de quelque chose de concret. Car me balancer l'aide msdn ne sert à rien, j'y ai déjà jeté un coup d'oeil. Si tu ne peux pas m'aider, je suis sûr que d'autres posts seront à ta portée. Je galère depuis plusieurs heures sur ce problème et j'ai vraiment besoin d'aide, pas de personnes qui aiment à exprimer des évidences.

    Mctwist69, est-ce que tu peux m'expliquer ce que tu veux dire par "deserialization" ? à quoi cela correspond-t-il ?

    Merci.

    --
    Shennong

  5. #5
    Membre expérimenté
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Par défaut
    Désoler pour ce malentendu, pour ma part la msdn me suffit même pour apprendre
    alors je vais essayer d'expliquer alors:
    - la Sérialisation est le fait d'enregistrer des données dans un fichier tier comme par exemple les fichier binaire, les fichiers csv, ou bien même les fichier XML, ce principe est d'enregistrer les données (variable de ton code) dans ce fichier et ce de façon structuré
    - et donc la Dé-sérialisation est le principe inverse on récupere notre fichier pour en extraire les données puis les réutilisé dans notre code

    !!! le principe de sérialisation et déserialisation est du code à risque donc ne pas oublier le try catch

    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
     
     
    Dim xmldoc As XmlDocument = New XmlDocument
    Dim element As XmlNodeList
     
     Try
                ' ton load permet d'ouvrir ton fichier
                xmldoc.Load(System.AppDomain.CurrentDomain.BaseDirectory & "nomDeTonFicher.xml")
                ' GetElementsByTagName permet de récupérer tout les noeuds que l'on souhaite
                ' tu recuperai une liste contenant tout tes element qui sont dans systemeInformation
                element = xmldoc.DocumentElement.GetElementsByTagName("SystemInformation")
     
                Dim noeud As XmlNode
                dans le cas ou tu a plusieurs noeud on boucle pour trouvé le bon
                For Each noeud In element
                        ' pour tester si on a bien Procesor
                        If noeud.LocalName = "Processor" Then
                                ' on recupere la ligne Processor
                                JeRecupereMaLigne = noeud.InnerText
                        endif
                Next
     
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try

  6. #6
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Ou alors... une méthode un peu plus longue à mettre en place, mais plus propre à mon goût :

    1) Tu te crées une classe, avec les exactes propriétés de ton fichier XML
    2) Tu rends cette classe serializable (avec ce même mot clé)
    3) du coup du peux faire MonDoc.Deserialise("Chemin de ton fichier")
    4) Et hop, ton objet contient toutes les infos de ton fichiers....

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/12/2009, 18h03
  2. [MySQL] Création base de données à partir d'un fichier XML
    Par kaya57200 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/12/2009, 22h58
  3. Extraction d'informations à partir d'un fichier xml
    Par ayoubnour dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2009, 08h54
  4. exporter des données à partir d'un fichier XML
    Par wafaingstat dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 10/01/2009, 16h51
  5. extraction de données à partir d'un fichier text ou xml
    Par bigplayer dans le forum Langage
    Réponses: 3
    Dernier message: 28/03/2007, 17h13

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