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 :

Gestion d'un fichier XML en VB 2010


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut Gestion d'un fichier XML en VB 2010
    Bonjour,

    Je dois développer une application permettant de gérer dans mon cas une liste de film contenus dans un fichier XML. Le but de l'application étant donc d'afficher, supprimer, modifier et ajouter des élément a ce fichier, cela via l'application VB.

    Je vous met en premier lieux la constitution de mon fichier xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <gestionDVD>
    	<DVD type="SF">
    		<titre>Inception</titre>
    		<realisateur>a</realisateur>
    		<dateSortie>b</dateSortie>
    		<duree>c</duree>
    		<synopsis>d</synopsis>
    		<jaquette>e</jaquette>
    		<acteur>
    			<nom>f</nom>
    			<nom>g</nom>
    		</acteur>
    	</DVD>
    </gestionDVD>
    Je parcours donc avec VB mon fichier XML grâce a des instructions for each
    pour chaque listes de noeuds et passe au noeud suivant au sein d'une liste grâce a next cibling. Rien de bien compliqué il me semble mais je me heurte à un petit soucis que je ne comprend pas lors d'un de mes passages a un noeud suivant avec next cibling.

    Je vous met le code VB en dessous et je continus :
    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
    Imports System.IO
    Imports System.Xml
    Public Class Form1          
     
        Private Sub ButtonRechercher_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonRechercher.Click
            Dim doc As New XmlDocument
            Dim unFilm, unTitre, unRealisateur, dateSortie, duree, synopsis, jaquette, acteur, nom As XmlNode
            Dim dvd, noms As XmlNodeList
            Dim valeurRecherche, erreur As String
     
            erreur = 0
            doc.Load("projet.xml")
            dvd = doc.GetElementsByTagName("DVD")
            For Each unDVD In dvd
                ''next cibling permet de passer à la ligne suivante du fichier XML
                unFilm = unDVD.FirstChild
                unTitre = unFilm.FirstChild
                unRealisateur = unTitre.NextSibling
                dateSortie = unRealisateur.NextSibling
                duree = dateSortie.NextSibling
                synopsis = duree.NextSibling
                jaquette = synopsis.NextSibling
     
                valeurRecherche = TextBoxTitre.Text
     
                If unTitre.InnerText = valeurRecherche Then
                    erreur = 1
                    LabelResultat.Text = ""
                    LabelResultat.Text = LabelResultat.Text & "Film: " & unTitre.InnerText & Chr(10)
                    LabelResultat.Text = LabelResultat.Text & "Réalisateur: " & unRealisateur.InnerText & Chr(10)
                    LabelResultat.Text = LabelResultat.Text & "Date de sortie: " & dateSortie.InnerText & Chr(10)
                    LabelResultat.Text = LabelResultat.Text & "Durée: " & duree.InnerText & Chr(10)
                    LabelResultat.Text = LabelResultat.Text & "Synopsis: " & synopsis.InnerText & Chr(10)
                    LabelResultat.Text = LabelResultat.Text & "Jaquette: " & jaquette.InnerText & Chr(10)
                    acteur = jaquette.NextSibling
     
                    noms = acteur.ChildNodes
                    For Each nom In noms
                        ''Acteurs
                        LabelResultat.Text = LabelResultat.Text & "Acteurs: " & nom.InnerText & Chr(10)
                    Next
                End If
            Next
     
            If erreur = 0 Then
                MsgBox("Erreur: Entrée inconnue")
            End If
        End Sub
    End Class
    Le problème se situe sur cette ligne ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dateSortie = unRealisateur.NextSibling
    qui me renvoi l'erreur:
    La référence d'objet n'est pas définie à une instance d'un objet.
    Et me bloque le reste. Mes accès aux noeuds précédents se passent apparemment sans problèmes et je ne vois pas d'où peut bien venir le soucis. Je me tourne donc vers vous en espérant trouver un peu d'aide.

    Merci et bon samedi

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    non le soucis vient de "unFilm", inexistant dans le fichier Xml.
    Regardez pour voir ... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            For Each unDVD In dvd
                ''next cibling permet de passer à la ligne suivante du fichier XML
                'unFilm = unDVD.FirstChild
                unTitre = unDVD.FirstChild
                unRealisateur = unTitre.NextSibling
                dateSortie = unRealisateur.NextSibling
                duree = dateSortie.NextSibling
                synopsis = duree.NextSibling
                jaquette = synopsis.NextSibling
    si cela marche.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Par défaut
    Salut,

    Merci pour ta réponse. Effectivement il manquait film dans mon XML, j'ai corrigé le problème yiers mais ça ne change rien.

    Merci.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    si tu as réintégré un nœud film dans ton Xml du genre :
    <DVD type="SF">
    <film>Les tontons flingueurs</film>
    <titre>Inception</titre>
    <realisateur>a</realisateur>
    <dateSortie>b</dateSortie>
    ...
    Teste avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                unFilm = unDVD.FirstChild
                unTitre = unFilm.NextSibling
    à la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                unFilm = unDVD.FirstChild
                unTitre = unFilm.FirstChild
    PS : Dans ton Label il n'est également jamais question de "unFilm" ?

Discussions similaires

  1. [Débutant] Gestion d'un fichier XML
    Par BlackAlpha dans le forum C#
    Réponses: 8
    Dernier message: 10/12/2014, 14h37
  2. Choix de l'outils de gestion d'un fichier XML
    Par megamario dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/05/2014, 08h18
  3. fusionner deux fichiers XML Visual C++ 2010
    Par Gloria_Im dans le forum Visual C++
    Réponses: 4
    Dernier message: 21/05/2012, 15h04
  4. [C#] Gestion d'un fichier XML.
    Par Trousse dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/03/2012, 12h14
  5. fichier xml avec excel 2010
    Par burger88 dans le forum Excel
    Réponses: 0
    Dernier message: 23/02/2011, 15h22

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