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