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 :

XML-->XSLT output format apres transformation avec un x [XSLT]


Sujet :

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

  1. #1
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut XML-->XSLT output format apres transformation avec un x
    bonjour à tous,

    Voila je voudrais avec un xslt transformer un fichier xml en un fichier js

    voici mon code

    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
     
    public static void createJS(Document xmlInput,String xslInput)	{
    		Document resultat = null;
    		try	{
    			System.out.println("Create Script_start.js...");
    			XSLTransformer transformer  = new XSLTransformer(xslInput);// Create a new objet transformer with xlst file as argument
    			resultat = transformer.transform(xmlInput);// transform xmlInput with the transformer 
    			// Get the result into a xml file
     
    			XMLOutputter outputter = new XMLOutputter();
    			outputter.output(resultat, new FileOutputStream(jsPath));
    			System.out.println(jsPath + " created with success");
    		}
    		catch(Exception e)	{
    			System.err.println("Erreur: " + e.getMessage());
    		}
    	}
    mais j'ai aussi cette erreur : Erreur: Root element not set

    Je pense que l'erreur vient du fait qu'en sortie je demande de créer un fichier xml et comme celui-ci n'est pas bien formé java me retourne cette erreur.
    Ma question est comment lui dire qu'en sortie je veux un fichier de type texte

    merci

    ++

  2. #2
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    ai je placé mon post au bon endroit ?
    dois je le mettre plutôt dan la partie consacrée au XML ?

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2003
    Messages : 57
    Points : 61
    Points
    61
    Par défaut
    L'erreur ne viendrait-elle pas plutot du fichier XML d'entrée ???
    Peux-tu le poster aussi ?

  4. #4
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    salut,

    En fait j'ai trouvé une astuce pour faire cela.
    Déja j'ai remarqué que mon "resultat" était nul. Je pense que JDOM veut du XML en sortie quoi qu'il arrive et comme moi je veux un fichier de type texte ca plante car mon fichier n'a pas de balise donc pas de root.

    J'ai donc créé une balise <test> et apres je l'ai parsé pour récuperer et recopier le contenu de la balise dans un fichier .js. Tout cela fonctionne.

    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
     
    public static void createJS(Document xmlInput,String xslInput)	{
    		Document resultat = null;
    		try	{
    			System.out.println("Create Script_start.js...");
    			XSLTransformer transformer  = new XSLTransformer(xslInput);// Create a new objet transformer with xlst file as argument
    			resultat = transformer.transform(xmlInput);// transform xmlInput with the transformer 
     
    			// Get the result into a XML file
    			XMLOutputter outputter = new XMLOutputter();
    			outputter.outputElementContent(resultat.getRootElement(), new FileOutputStream(jsPath));
    			System.out.println(jsPath + " created with success");
    		}
    		catch(Exception e)	{
    			System.err.println("Erreur: " + e.getMessage());
    		}
    	}
    Maintenant y'a peut être une autre solution si vous voyez autre chose postez votre solution ca m'interesse.

    ++

  5. #5
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Non en fait ce qu'il faut faire c'est ajouter cela dans la feuille XSLT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:output method="text" />
    Romain Guy
    Android - Mon livre - Mon blog

  6. #6
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    Citation Envoyé par Gfx
    Non en fait ce qu'il faut faire c'est ajouter cela dans la feuille XSLT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:output method="text" />

    Non en fait ca marche pas il me met la même erreur
    Erreur: Root element not set

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 126
    Points : 110
    Points
    110
    Par défaut
    C'est donc pour ça cette erreur "no root element set" !!! C'est du n'importe quoi si l'output se doit d'être du xml....

    Merci du tuyau car c'est pas évident à trouver sur le web....

    Gal'

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    Bon Ok un gros up mais vu que c'est l'un des premiers résultats qui remonte dans google ...

    Juste pour ajouter qu'il est possible de créer de l'html via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:output method="html"/>
    En fait dès que l'on souhaite sortir du "text", ca plante ...

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Évidemment puisque du texte brut n'est pas un Document valide.

    Il faut utiliser une API qui ne produit pas forcément un Document, comme par exemple javax.xml.transform.Transformer et son javax.xml.transform.stream.StreamResult
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. transformation avec XSLT d'une page XML
    Par Fearless13 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/04/2010, 19h13
  2. Probleme de format apres saisie avec formulaire
    Par goby45 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/02/2010, 11h55
  3. [xslt] For-each dans template avec format XML (row)
    Par Steff1985 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/11/2005, 11h14
  4. probleme de transformation d'un XML via XSLT
    Par nayron_1 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 08/11/2005, 14h19
  5. transformation xml via xslt
    Par ronnie dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 10/05/2005, 10h58

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