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 :

application d une xslt et problème d'accents [XSLT]


Sujet :

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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut application d une xslt et problème d'accents
    Bonjour, je cherche à appliquer une xslt sur un document xml, la transformation s'effectue sans problème, mais le résultat n'est pas tout à fait bon j'ai un pb avec le codage et les accents (genre : Que vous soyez développeur confirmé). ( développeur )


    voila le bout de code qui m interresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /*on va faire appel a une factory pour creer un transformeur pour cela
        on utilisise la classe TransformerFactory ou une de ses sous classe (javax.xml.transform.sax.SAXTransformerFactory)*/    TransformerFactory factory = TransformerFactory.newInstance();
        Transformer transformer = factory.newTransformer(xsltSource);
       //on applique enfin les transformations
     
        transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,"UTF-8");
        transformer.setOutputProperty(javax.xml.transform.OutputKeys.METHOD,".html");
        transformer.transform(xmlSource,result);
    precision xsltSource,xmlSource et result sont des Source,Source et Result pour le dernier.
    J'en profite pour poser une seconde question quand un !ELEMENT à un nom avec accent genre <!ELEMENT metadonnées (#PCDATA)>
    l'application de la mtehode transformer.transform(xmlSource,result);
    lève une exception :
    TransformerException:Element type "null" must be followed by either attribute specifications, ">" or "/>".
    at org.apache.xalan.transformer.TransformerImpl.fatalError(TransformerImpl.java:739)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:715)
    at org.apache.xalan.transformer.TransformerImpl.transformTransformerImpl.java:1129)
    at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1107)
    at XsltOnXml.appliTransformation(XsltOnXml.java:101)
    at TestXsltOnXml.main(TestXsltOnXml.java:23)

    Savez si il existe un moyen autre que de suprimmer les noms avec accent pour résoudre ce problème?

    A+ et merci[/b]

  2. #2
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 58
    Points : 49
    Points
    49
    Par défaut
    Est ce que ta premiere ligne de ton fichier XML ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1"?>
    ?
    Si tu utilises des accents tu dois spécifier que tu utilises un alphabet latin (encoding="ISO-8859-1").

    Il existe aussi un forum XML si tu ne trouves pas ton bonheur ici.

  3. #3
    Membre régulier Avatar de zozolh2
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2003
    Messages : 128
    Points : 106
    Points
    106
    Par défaut
    salut

    vi il fo spécifier l'encodage... pour la page qui va etre lue ainsi que pour le transformateur...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.xml.transform.OutputKeys.ENCODING,"UTF-8");
    spécifie lui au lieu de l'utf-8 le iso-8859-1

    et ton pb sera règlé

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Bonjour à tous.
    Tout d'abord merci de vos réponses. J'ai trouvé la solution à mon problème, elle n'était pas là ou je la cherchai. Le problème venait du reader utilisé.
    J'utilisai un FileReader comme source d'entrée. Maintenant avec un javax.xml.transform.stream.StreamSource; le problème est résolu que ce soit au niveau de l'exception ou du codage du résultat.

    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
     
     StreamSource xmlSource=new StreamSource(xmlSourcePath);  
        //idem pour le resultat
        StreamResult result=new StreamResult(destinationName);
        //pour les xslt
        StreamSource xsltSource=new StreamSource((String)xsltName.get(0));
     
        /*on va faire appel a une factory pour creer un transformeur pour cela
        on utilisise la classe TransformerFactory ou une de ses sous classe (javax.xml.transform.sax.SAXTransformerFactory)*/
        TransformerFactory factory = TransformerFactory.newInstance();
        Transformer transformer = factory.newTransformer(xsltSource);
     
        //on applique enfin les transformations
        transformer.setOutputProperty(javax.xml.transform.OutputKeys.METHOD,".html"); 
        transformer.transform(xmlSource,result);

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

Discussions similaires

  1. [XSLT][ASP] Problème d'accent et de codage
    Par yonialhadeff dans le forum ASP
    Réponses: 2
    Dernier message: 09/02/2007, 03h05
  2. Problème d'accent lors d'une requête
    Par escape dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/12/2006, 13h48
  3. Problème d'accent dans une base
    Par mLk92 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 28/07/2006, 19h34
  4. problème d'accent dans une chaine
    Par dom_dev dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2006, 10h33
  5. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 15h36

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