Erreur de chargement du fichier xml après la compression en zip

hanadakia Messages postés 43 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 30 mai 2018 - 18 déc. 2015 à 13:30
hanadakia Messages postés 43 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 30 mai 2018 - 18 déc. 2015 à 17:39
Bonjour,
mon programme consiste à générer un fichier xml et le compresser en format zip.
Voici le code que j'utilise pour la compression:
-----------------------------------------------------------------------------------------
Private Sub compresser(ByVal fileZip As String, ByVal fileXml As String)
Try
'--- Definit et exécute
Dim nomzip As String = fileZip
Dim ZipStream As ZipOutputStream = New ZipOutputStream(File.Create(nomzip))
ZipStream.SetLevel(9)
Dim i As Integer = 0

Dim fichier As String = fileXml
Dim fs As FileStream = File.OpenRead(fichier)
Dim buffer(fs.Length) As Byte
fs.Read(buffer, 0, buffer.Length)
Dim entry As ZipEntry = New ZipEntry(Path.GetFileName(fichier))
ZipStream.PutNextEntry(entry)
ZipStream.Write(buffer, 0, buffer.Length)

'--- Termine la procédure de compression
ZipStream.Finish()
'--- ferme le fichier de compression
ZipStream.Close()

Catch Ex As Exception
'--- La compression ne s'est pas bien passée, une erreur est survenue
MessageBox.Show("Erreur lors de la création de l'archive" & Microsoft.VisualBasic.Chr(10) & "Erreur : " + Ex.Message, "Erreur")
End Try
End Sub
-----------------------------------------------------------------------------------------
Avant la compression, le fichier s'ouvre correctement dans le navigateur mais après la compression on m'affiche ce message:

Erreur d'analyse XML : mal formé
Emplacement : file:///C:/Users/hanane/AppData/Local/Temp/Rar$DI00.518/Dedsomanex012015.xml
Numéro de ligne 103, Colonne 30 :
</DeclarationReleveDeduction>

Est ce que quelqu'un peut m'aider à résoudre ce problème ?
Merci d'avance.

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 18/12/2015 à 14:10
Bonjour,
Il est déjà surprenant que, puisque tes paramètres sont passés par valeur (Byval), tu ne les traites pas directement plutôt que d'en traiter leurs clones. Il semble que tu aies mal compris la différence entre passer un paramètre par valeur et le passer par référence;
Le message que tu reçois, par ailleurs, semble dénoncer non pas une erreur de ton code (et donc concerner VB/Net) , mais une erreur de structure du fichier à traiter.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
hanadakia Messages postés 43 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 30 mai 2018
18 déc. 2015 à 15:03
Je ne sais pas qu'est ce qui manque dans cette structure:

<DeclarationReleveDeduction><identifiantFiscal>1223663</identifiantFiscal><annee>2015</annee>
<periode>01</periode>
<regime>1</regime>
<releveDeductions>
<rd>
<ord>93</ord>
<num>5</num>
<des>facture d'eau</des>
<mht>560.00</mht>
<tva>39.00</tva>
<ttc>599.00</ttc>
<refF>
<if>55458</if>
<nom>ingesoft</nom>
<ice>ICE</ice>
</refF>
<tx>7.00</tx>
<mp>
<id>1</id>
</mp>
<dpai>2015-12-18</dpai>
<dfac>2015-12-18</dfac>
</rd>
<rd>
<ord>93</ord>
<num>5</num>
<des>facture d'éléctricité</des>
<mht>2440.00</mht>
<tva>244.00</tva>
<ttc>2684.00</ttc>
<refF>
<if>55458</if>
<nom>ingesoft</nom>
<ice>ICE</ice>
</refF>
<tx>10.00</tx>
<mp>
<id>2</id>
</mp>
<dpai>2015-12-18</dpai>
<dfac>2015-12-18</dfac>
</rd>
</releveDeductions>
</DeclarationReleveDeduction>
0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
18 déc. 2015 à 16:19
Bonjour

Pense à utiliser la coloration syntaxique quand tu postes un code ou un xml, explications ici.

Dans ton xml, il y a deux balises sur une seule ligne, pour ce que j'en sais, ça ne se fait pas.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 déc. 2015 à 16:50
Bonjour, Whismeril,
Voilà donc ce que devrait être sin xml :
<DeclarationReleveDeduction>
<identifiantFiscal>1223663</identifiantFiscal>
<annee>2015</annee>
<periode>01</periode>
<regime>1</regime>
<releveDeductions>
<rd>
<ord>93</ord>
<num>5</num>
<des>facture d'eau</des>
<mht>560.00</mht>
<tva>39.00</tva>
<ttc>599.00</ttc>
<refF>
<if>55458</if>
<nom>ingesoft</nom>
<ice>ICE</ice>
</refF>
<tx>7.00</tx>
<mp>
<id>1</id>
</mp>
<dpai>2015-12-18</dpai>
<dfac>2015-12-18</dfac>
</rd>
<rd>
<ord>93</ord>
<num>5</num>
<des>facture d'éléctricité</des>
<mht>2440.00</mht>
<tva>244.00</tva>
<ttc>2684.00</ttc>
<refF>
<if>55458</if>
<nom>ingesoft</nom>
<ice>ICE</ice>
</refF>
<tx>10.00</tx>
<mp>
<id>2</id>
</mp>
<dpai>2015-12-18</dpai>
<dfac>2015-12-18</dfac>
</rd>
</releveDeductions>
</DeclarationReleveDeduction>

(avec, bien évidemment son entête à ajouter).
Mais rien à voir avec Visual Basic, tout cela ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hanadakia Messages postés 43 Date d'inscription mercredi 21 mai 2014 Statut Membre Dernière intervention 30 mai 2018
18 déc. 2015 à 17:39
Merci pour vos réponses
0
Rejoignez-nous