Bonjours à tous,
Je voudrais m'initier un peut dans la sérialisation XML.
J'ai crée une classe clsClient:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129 Public Class clsClient Private _Id As Integer Private _Nom As String Private _Prenom As String Private _Telephone As String Private _Portable As String Private _Adresse As String Private _CodePostal As String Private _Ville As String Private _Email As String Private _NbReserv As Integer Private _Commentaire As String Private _Alerte As Boolean Public Sub New() _Id = 0 _Nom = "" _Prenom = "" _Telephone = "" _Portable = "" _Adresse = "" _CodePostal = "" _Ville = "" _Email = "" _NbReserv = 0 _Commentaire = "" _Alerte = False End Sub Public Property ID() As Integer Get ID = _Id End Get Set(ByVal value As Integer) _Id = value End Set End Property Public Property NbReserv() As Integer Get NbReserv = _NbReserv End Get Set(ByVal value As Integer) _NbReserv = value End Set End Property Public Property Nom() As String Get Nom = _Nom End Get Set(ByVal value As String) _Nom = value End Set End Property Public Property Prenom() As String Get Prenom = _Prenom End Get Set(ByVal value As String) _Prenom = value End Set End Property Public Property Telephone() As String Get Telephone = _Telephone End Get Set(ByVal value As String) _Telephone = value End Set End Property Public Property Portable() As String Get Portable = _Portable End Get Set(ByVal value As String) _Portable = value End Set End Property Public Property CodePostal() As String Get CodePostal = _Portable End Get Set(ByVal value As String) _CodePostal = value End Set End Property Public Property Adresse() As String Get Adresse = _Adresse End Get Set(ByVal value As String) _Adresse = value End Set End Property Public Property Ville() As String Get Ville = _Ville End Get Set(ByVal value As String) _Ville = value End Set End Property Public Property Email() As String Get Email = _Email End Get Set(ByVal value As String) _Email = value End Set End Property Public Property Commentaire() As String Get Commentaire = _Commentaire End Get Set(ByVal value As String) _Commentaire = value End Set End Property Public Property Alerte() As Boolean Get Alerte = _Alerte End Get Set(ByVal value As Boolean) _Alerte = value End Set End Property End Class
Pour mes essais je crée un fichier client XML avec ceux ci:
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 Private Sub btValider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btValider.Click Dim client As clsClient Dim xs As XmlSerializer Dim wr As StreamWriter Dim List As New List(Of clsClient) Dim i As Integer 'Pour les essaies je crée 6 clients reprise: client = New clsClient client.ID = CInt(txtIDClient.Text) + i client.Nom = txtNom.Text client.Prenom = txtPrenom.Text client.Adresse = txtAdress.Text client.CodePostal = txtCodePostale.Text client.Commentaire = txtCommentaire.Text client.Email = txtEmail.Text client.Portable = txtPortable.Text client.Telephone = txtTelephone.Text client.Ville = txtVille.Text List.Add(client) If i <= 5 Then i += 1 GoTo reprise End If wr = New StreamWriter("Client.xml") xs = New XmlSerializer(GetType(List(Of clsClient))) xs.Serialize(wr, List) wr.Close() End Sub
Cela fonctionne super bien. Mais lorsque je souhaite faire l'inverse cela fonctionne pas
Il me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Sub loadClients() Dim sr As New StringReader(Application.StartupPath & "/Client.xml") Dim Lists As New List(Of clsClient) Dim xs As XmlSerializer Dim client As clsClient xs = New XmlSerializer(GetType(List(Of clsClient))) Lists = xs.Deserialize(sr) 'cela plante ici sr.close() End Sub
Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : Il existe une erreur dans le document XML (1, 1).
Merci de votre aide, je recherche de mon coté.
Partager