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 :

Problème de compilation [XSLT]


Sujet :

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

  1. #1
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut Problème de compilation
    Bonjour,
    Je veux réussir à tranformer un document xml en plusieurs documents xml et je me suis tourné vers les XSLT. J'ai réussi à faire fonctionner une première ébauche de code avec une feuille de style assez basique mais je rencontre un problème bizarre lorsque je veux récupérer cette feuille de style d'une chaîne de caractères et non pas d'un fichier :

    voici le code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try{
    String fileName = TestXmlReceiverBalise.class.getResource("TestXmlReceiverBalise_Data.xml").getFile();
     
    String xslt= TestXmlReceiverBalise.class.getResource("TestXmlReceiverBalise_XSLT.xml").getFile();
          TransformerFactory tFactory = TransformerFactory.newInstance();
          Transformer transformer = tFactory.newTransformer(new StreamSource(xslt));
          transformer.transform(new StreamSource(fileName), new StreamResult(System.out));
     
    catch (Exception e){
          e.printStackTrace();
        }
    maintenant le code qui ne fonctionne pas :
    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
     
    try{
    String fileName = TestXmlReceiverBalise.class.getResource("TestXmlReceiverBalise_Data.xml").getFile();
     
          StringBuffer xsltb = new StringBuffer().append("<? xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>");
          xsltb.append("<xsl:stylesheet version=\"1.0\"  xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">");
          xsltb.append("  <xsl:output encoding=\"iso-8859-1\" method=\"xml\" />");
          xsltb.append("    <xsl:template match=\"/\">");
          xsltb.append("      <xsl:for-each select=\"//ELEMENT[position()=1]\">");
          xsltb.append("        <xsl:copy-of select=\".\"/>");
          xsltb.append("      </xsl:for-each>");
          xsltb.append("    </xsl:template>");
          xsltb.append("</xsl:stylesheet>");
     
          String xslt = xsltb.toString();
          TransformerFactory tFactory = TransformerFactory.newInstance();
          Transformer transformer = tFactory.newTransformer(new StreamSource(xslt));
          transformer.transform(new StreamSource(fileName), new StreamResult(System.out));
     
     
    catch (Exception e){
          e.printStackTrace();
        }
    Je voulais passer ma feuille de style en tant que chaîne de caracteres pour pouvoir modifier le ELEMENT[position()=1] en ELEMENT[position()=i] ou i serait un compteur pour pouvoir créer un document xml pour chaque balise. Enfin en tout cas c'est l'idée après je sais pas si ça fonctionnera

    Mais ce code déclenche l'erreur suivante :
    ERREUR : 'no protocol:
    ERREUR BLOQUANTE : 'Impossible de compiler la feuille de style'

    Quelqu'un a t il une idée du problème qui déclencherait cette erreur?

    Merci

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    le constructeur de StreamSource prenant en paramètre une String s'attend à trouver une URL dans ce paramètre, or là tu lui envoies du XML sérialisé...

    Utilise un constructeur prenant un flux d'entrée en paramètre (c'est dans la doc), par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Transformer transformer = tFactory.newTransformer(new StreamSource(new StringReader(xslt)));
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    Tes réponses sont toujours justes du premier coup

    Merci bien .

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

Discussions similaires

  1. problème de compilation sous visual C++
    Par fabmili dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2004, 19h52
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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