1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2016
    Messages : 9
    Points : 12
    Points
    12

    Par défaut XML: diférence invisible dans le texte entre les balises

    Bonjour à tous,

    A partir d'un fichier au format xlsx, je crée (avec SAS) un fichier XML. Ce fichier XML est ensuite utilisé par un autre programme.

    Cependant, j'ai été confronté à un bug. Le programme utilisant le fichier XML indiquait une erreur.

    Après de multiples essais en supprimant les lignes XML, j'ai identifié l'erreur. Dans le fichier Excel, j'ai des lignes avec des Guillemets ("). Si je supprime tous les guillemets du fichier xlsx, le bug n'apparait plus.

    Cependant, la ligne suivante ayant des guillemets ne crée pas de bugs si je la laisse:

    En excel: Do you know the "allowance for income replacement"? (aucun probléme en xml) donne en xml <English> Do you know the &quot;allowance for income replacement&quot;? </English> (vu avec Notepd++)

    Tandis que celle-ci en crée:
    En excel: IWER: Ask "Does any other adult live in this household?" (problème en xml) donne en XML <English> [IWER: Ask &quot;Does any other adult live in this household?&quot; </English> (vu avec Notepd++)

    Y'a-t-il un outil qui me permettrait de voir la différence entre ces deux lignes? Avez-vous des pistes?

    Bonne journée,

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2016
    Messages : 9
    Points : 12
    Points
    12

    Par défaut

    J'ai essayé de supprimer ?&quot; en me disant que l'autre programme interprétait cela comme du code. Mais non, ca ne change rien.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 488
    Points : 19 498
    Points
    19 498

    Par défaut

    Hello,

    tu peux pas être précis concernant le message d'erreur reçu ? Et sinon, un simple exemple de fichier XML qui ne passe pas et on devrait pouvoir te dire ce qui coince...

    Personnellement, dans un cas comme ça, je soupçonne la présence de caractères invisibles ou ressemblant à ceux que je connais mais qui n'en sont pas. L'encodage Unicode permet ce genre de choses assez facilement.

    Pour détecter qu'il y a des caractères "bizarres" Unicodes là où je ne vois que des caractères ASCII, j'ai plusieurs techniques qui me permettent de comparer deux textes :

    - Copier/coller dans un Notepad++ configuré en UTF-8, puis utiliser "Encoder en ANSI" (et non pas "Convertir"). On voit bien que le moindre accent s'affole. Comme tout ce qui n'est pas ASCII.

    - Copier/coller dans un Notepad++ configuré en UTF-8, enregistrer dans un fichier, ouvrir dans un éditeur hexadécimal. Les caractères ASCII prennent un octet, les autres en prennent plusieurs. Ce qui se remarque. Ça permet aussi de comparer le code binaire des deux textes.

    - Utiliser un encodeur en ligne, genre pour l'URL encoding. Ils encodent beaucoup de choses, mais ça permet de comparer très facilement le traitement de deux textes même si on a pas un programme précis installé sur la machine.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2016
    Messages : 9
    Points : 12
    Points
    12

    Par défaut

    Merci, ta réponse m'a beaucoup aider. Je n'avais pas pensé à un éditeur hexadécimal.

    J'ai donc essayé et Notepad ne me donne exactement la même chose entre mes deux lignes (peu importe l'encodage), l'éditeur hexadécimal aussi.

    Ce qui m'a amené à penser que je me trompais. En fait l'autre programme (qui me fournit malheureusement aucun message d'erreurs) n'utilisait pas la première des phrases XML que j'ai mis (donc forcément pas de bug avec celle-là).

    J'ai fini par remplacé " par \" (caractère d'échappement) dans mon XML et là l'autre programme accepte mon XML. Mon problème est donc résolu (il était simple en fait... ).

    Merci encore!

    Bonne journée,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. La recherche s'effectue-t-elle dans le texte entre les balises [code]?
    Par franculo_caoulene dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 4
    Dernier message: 18/06/2009, 12h53
  2. Éliminer les liens sans texte entre les balises
    Par kabkab dans le forum Regex
    Réponses: 2
    Dernier message: 12/04/2009, 11h27
  3. Réponses: 4
    Dernier message: 15/07/2008, 12h22
  4. [XML] Caracteres speciaux entre les balises.
    Par Shrieker dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 16/09/2005, 14h14
  5. [SAX] Problème SAX lecture du texte entre les balises
    Par BernardT dans le forum XML
    Réponses: 1
    Dernier message: 07/07/2005, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo