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

Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018
- - Dernière réponse : hanadakia
Messages postés
48
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.
Afficher la suite 

5 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018
0
Merci
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>
Commenter la réponse de hanadakia
Messages postés
13401
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 juin 2019
279
0
Merci
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.
Commenter la réponse de Whismeril
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
0
Merci
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 ...
Commenter la réponse de ucfoutu
Messages postés
48
Date d'inscription
mercredi 21 mai 2014
Statut
Membre
Dernière intervention
30 mai 2018
0
Merci
Merci pour vos réponses
Commenter la réponse de hanadakia