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:
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:
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:
dateSortie = unRealisateur.NextSibling
qui me renvoi l'erreur:
Citation:
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 ;)