IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

String vers Document en gardant l'encodage


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut String vers Document en gardant l'encodage
    Bonjour

    Dans mon appli Java, j'ai une String XML qui ressemble à cela (pour simplifier):

    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <root>
    ...
    </root>
    Je suis en train d'essayer de convertir cette String XML en un object Document afin de le manipuler/modifier et de le sauvegarder.

    Pour le convertir de String vers un Document je fais ainsi:

    public static Document stringToDocument(final String xmlSource)
    throws SAXException, ParserConfigurationException, IOException {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();

    return builder.parse(new InputSource(new StringReader(xmlSource)));
    }

    Mon problème est que le Document résultat de l'invocation de cette méthode est un Document correct mais avec un type d'encodage différent de celui que j'ai dans mon String XML. Voici l'XML du Document généré:

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    ...
    </root>

    Comment faire afin de convertir mon String XML en Document et que mes données soient préservées pendant cette conversion?

    Merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    l'encodage n'a pas lieu d'être dans l'objet Document, cette information n'y existe donc pas. L'encodage refait surface lorsque vous écrivez ce Document vers la destination. Donc en gros vous avez


    fichier ---- décodage ---> Document -------- encodage -----> fichier2

    C'est au moment ou vous écriver les Document vers un ficheir que vous devez préciser l'encodage à utiliser.

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut
    Merci pour la réponse.

    Donc, si j'ai bien compris, je dois obtenir l'encodage qui est présent dans mon String XML (ce String XML me provient ainsi), construire mon Document et faire les manips dessus et préciser l'encodage du Document avec celui présent dans le String.
    Merci bien!

    Citation Envoyé par tchize_ Voir le message
    l'encodage n'a pas lieu d'être dans l'objet Document, cette information n'y existe donc pas. L'encodage refait surface lorsque vous écrivez ce Document vers la destination. Donc en gros vous avez


    fichier ---- décodage ---> Document -------- encodage -----> fichier2

    C'est au moment ou vous écriver les Document vers un ficheir que vous devez préciser l'encodage à utiliser.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ta string est en mémoire, elle n'a donc pas d'encodage, et si tu envoie ta String au parseur, il ignore complètement la partie "encoding=" puisqu'elle ne lui sert à rien.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut
    Oui je sais mais comme je l'avais dit, le String XML était juste un exemple.

    En fait le "vrai" String XML que j'ai provient d'une Base de données est en fait c'est une stylesheet XSL générée par Altova Stylevision et qui contient donc
    ceci au début:

    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

    Mon objectif étant de modifier un élément de l'XML, je veux préserver l'XML exactement comme il l'est (excépté bien sur l'élément que je veux modifier) sinon après j'ai des problèmes au niveau de l'encodage (ce qui arrive lorsque je converti le String en Document et la première ligne passe à être <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>)...

    Citation Envoyé par tchize_ Voir le message
    ta string est en mémoire, elle n'a donc pas d'encodage, et si tu envoie ta String au parseur, il ignore complètement la partie "encoding=" puisqu'elle ne lui sert à rien.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comme je l'ai dit, c'est au niveau de la sortie du parseur que tu dois préciser l'encodage que tu désire. Maintenant si tu bloque dessus, comme on a pas de code concret, on peut pas t'aider.

Discussions similaires

  1. String vers byte[]
    Par EpOnYmE187 dans le forum Langage
    Réponses: 8
    Dernier message: 28/10/2011, 11h23
  2. String vers un Double
    Par hugoferd dans le forum Langage
    Réponses: 1
    Dernier message: 16/10/2005, 20h46
  3. Fusion requête Access 2003 vers document word
    Par davidf dans le forum Access
    Réponses: 2
    Dernier message: 17/06/2005, 13h46
  4. [C#] Fonction pour convertir string[] vers ArrayList
    Par luimême dans le forum Windows Forms
    Réponses: 6
    Dernier message: 07/04/2005, 13h25
  5. [STRING]Contenu d'un String <> vers &lt; et &g
    Par TreizeSegments dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 03/08/2004, 08h37

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