VB6 - XML Comment masquer les erreurs de parse ?

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 24 mars 2013 à 17:52
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 24 mars 2013 à 21:02
Bonjour à tou(te)s

Je suis confronté à un petit problème, faisant mes débuts en XML.
Mon programme VB6 voudrait ouvrir un fichier XML (XML 3 en UTF-8), mais ce (gros) fichier contient des caractères qui ne semblent pas être acceptés par le parser.
En fait, dans le contenu d'éléments, j'ai une 20aine de caractères (sur 90Mb) codés sur 2 bytes 01, 03 ou 06.
Ce qui m'épate d'ailleurs, c'est que ces caractères sont codés sur 2 bytes; ce qui me laisse penser qu'il s'agit bien d'un bug de génération du fichier XML.
Ce fichier XML est généré par un logiciel pro (d'une multinationale) et, bien que ces caractères n'aient aucune raison d'être, je ne peux hélas pas faire grand chose.

Lors de ces erreurs, je récupère bien le n° de ligne, de colonne et la donnée posant problème grâce au .parseError de mon DOM, mais bien sûr, le parse s'arrête là.

Ma question est : Est-il possible de forcer l'ouverture malgré ces erreurs sans importances ?
genre un attribut qu'il faudrait positionner avant de lancer le .Load.

Ma dernière solution sera d'ouvrir le fichier et de remplacer ces caractères par de simples espaces, mais le traitement risque de prendre du temps.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)

7 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
24 mars 2013 à 18:17
Bonjour, jack,
Je vois mal comment envisager ta première solution.
La seconde, par contre, peut aller à la vitesse grand V en utilisant StrConv.
Si cette solution t'intéresse (et à la vitesse grand V), je m'y essaye.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mars 2013 à 18:53
Ouais.
Si 52000 caractères traités en moins de 0,01 secondes te parait une vitesse acceptable, je continuer.
Dis-moi.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mars 2013 à 19:20
Quand tu dis :
sur 90Mb

sont-ce des MegaBits ou des MegaBytes ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 mars 2013 à 19:24
Salut ucfoutu

Oui, traiter un fichier de 2.2 millions de lignes n'est pas la mer à boire, mais je tentais le coup, puisque ma jeune connaissance des structures XML est largement incomplète.

Quant à StrConv, elle me permettrait de traiter des conversions de/vers Unicode, mais comme il s'agit là de quelques paquets d'une dizaine d'octets perdus au milieu de caractères UTF-8, je crains que la conversion n'affecte aussi la partie de texte correcte.
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mars 2013 à 19:31
je crains que la conversion n'affecte aussi la partie de texte correcte.

Non. Pourquoi ?
Mais tu ne m'as pas répondu : Megabits ou Megabytes ?
C'est le seul point qui m'intéresse, avant de choisir comment "pousser".
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 mars 2013 à 20:52
88.755.677 octets, pour être précis, lol
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mars 2013 à 21:02
Ah ! près de 90 MO, donc (et pas Mb).
Ca fait beaucoup et je n'ai pas un tel fichier "sous la main" pour essayer.
Je m'étais arrêté à environ 104 MB (pas MO) ===>> 0,79 secondes

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Rejoignez-nous