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 :

Transformer, imposer un encodage [XSLT]


Sujet :

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

  1. #1
    Membre confirmé Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Par défaut Transformer, imposer un encodage
    Bonjour, j'ai fait un petit code qui permet de prendre un document xml et un filtre xslt afin de d'en generer du xml (plus precisement html dans ce cas). Le probleme est que lors de la transformation il convertit, par exemple, un 'é' en 'é', ce qui implique des entitées. Mais dans mon cas si je veux en faire du xml ca bug car le 'é' n'est pas reconnu. Donc je me demandait comment imposer le utf-8 au transformer?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    import java.io.*;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    public class XSLTInterpreter
    {
     private File documentFile;
     private File xsltFile;
     public XSLTInterpreter(String documentPath, String xsltPath)
      throws IOException
     {
      this(new File(documentPath), new File(xsltPath));
     }
     public XSLTInterpreter(File documentFile, File xsltFile)
      throws IOException
     {
      if (documentFile.canRead())
      {
       this.documentFile = documentFile;
      }
      else
      {
       throw new IOException("can't read documentFile " + documentFile);
      }
      if (xsltFile.canRead())
      {
       this.xsltFile = xsltFile;
      }
      else
      {
       throw new IOException("can't read xsltFile" + xsltFile);
      }
     }
     public String toString()
     {
      StringWriter writer;
      Transformer transformer;
      StreamSource source;
      StreamResult result;
      writer = new StringWriter();
      try
      {
       transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(this.xsltFile));
       source = new StreamSource(this.documentFile);
       result = new StreamResult(writer);
       transformer.transform(source, result);
      }
      catch (TransformerConfigurationException e)
      {
       System.out.println("can't associate the xsltFile with the transformer");
      }
      catch (TransformerException e)
      {
       System.out.println("can't transform the documentFile");
      }
      return writer.toString();
     }
     //test purpose
     public static void main(String[] arg)
     {
      try
      {
       System.out.println(new XSLTInterpreter(arg[0], arg[1]));
      }
      catch (Exception e)
      {
       System.out.println(e);
      }
     }
    }
    Le gros du probleme se situe dans la methode toString() (je sais ce n'est pas une bonne habitude de mettre ca la :p).

  2. #2
    Membre confirmé Avatar de Emplyst
    Inscrit en
    Mars 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 152
    Par défaut
    J'ai trouver la solution a mon probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
       //Déclare le document comme étant un document xml 1.0 suivant un encodage UTF-8
       transformer.setOutputProperty(OutputKeys.METHOD, "xml");
       transformer.setOutputProperty(OutputKeys.VERSION, "1.0");
       transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 25/07/2012, 12h40
  2. Problème d'encodage: fichier transformé en binaire
    Par sousou_ dans le forum Langage
    Réponses: 3
    Dernier message: 02/01/2012, 15h06
  3. script transformation svg - probleme d'encodage
    Par knebhi dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 04/06/2010, 17h47
  4. [DOM] Transformer : encodage avec référence numérique
    Par tdaubign dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 01/09/2006, 10h26
  5. Encodage lors d'une transformation xsl par le browser
    Par ouioui2000 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/04/2006, 12h09

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