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 :

Récupération de la transformation Xslt [XSLT]


Sujet :

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

  1. #1
    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 Récupération de la transformation Xslt
    Bonjour,

    Ma question porte sur le résultat d'une transformation XSLT. J'ai pu lire dans la FAQ comment transformer un flu XML en un fichier HTML, PDF, etc...
    J'ai besoin de transformer un fichier XML en un autre fichier XML via XSLT. Cela marche et la transformation me crée un fichier XML physique.

    Or j'aurais besoin de récupérer le flu XML de sortie :
    org.w3c.dom.Document --> XSLT --> org.w3c.dom.Document

    Je n'ai pas trouver comment faire cela autrement qu'en (re)parsant le fichier XML physique. Et bien entendu cela ne me plait pas trop (sinon ce post n'aurait pas lieu d'être)

    Auriez-vous une idée ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 73
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Je pense que pour ton résultat tu utilise un StreamResult...
    si j'ai juste essaye un DOMResult...

    http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/transform/dom/DOMResult.html

    Cordialement,
    PS : N'oublie pas le tag [Résolu] (en cliquant sur http://pouiller.eclipse.free.fr/avatar/resolu.gif), si ton problème est résolu...

  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
    Citation Envoyé par bidon
    Je pense que pour ton résultat tu utilise un StreamResult...
    si j'ai juste essaye un DOMResult...

    http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/transform/dom/DOMResult.html
    C'est presque ça... Ca me plait mieux que le Result car je ne passe plus par un fichier. Mais le DomResult ne me retourne pas le org.w3c.dom.Document que j'aurais aimé... (bref y'a pas de getDocument())

    Pour info voilà ma portion de 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
    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
     
    	public Document transform(Document pDocumentIn, String pTemplate) {
    		Document documentOut = null;
     
    		try {
    			Source source = new DOMSource(pDocumentIn);
     
    			/* Elaboration du Transformateur XSLT */
    			TransformerFactory factoryXslt = TransformerFactory.newInstance();
    			StreamSource sourceXsl = new StreamSource(new File(TEMPLATES_PATH + "/" + pTemplate));
    			Transformer transformerXslt = factoryXslt.newTransformer(sourceXsl);
    			transformerXslt.setOutputProperty(OutputKeys.INDENT, "yes");
    			transformerXslt.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
     
    			/* Création de la source du document XML de sortie */
    			File outputFile = new File("output.xml");
    			outputFile.deleteOnExit();
    			Result result = new StreamResult(outputFile);
    			//DOMResult result = new DOMResult();
     
    			/* Transformation... */
    			transformerXslt.transform(source, result);
     
    			/* Récupération de la source du document XML d'entrée */
    			DocumentBuilderFactory factoryXml = DocumentBuilderFactory.newInstance();
    			DocumentBuilder builderXml = factoryXml.newDocumentBuilder();
    			documentOut = builderXml.parse(outputFile);
    		}
    		catch (TransformerConfigurationException e) {
    			e.printStackTrace();
    		}
    		catch (ParserConfigurationException e) {
    			e.printStackTrace();
    		}
    		catch (IOException e) {
    			e.printStackTrace();
    		}
    		catch (SAXException e) {
    			e.printStackTrace();
    		}
    		catch (TransformerException e) {
    			e.printStackTrace();
    		}
     
    		return documentOut;
    	}
    Merci quand même pour la réactivité

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 73
    Points : 78
    Points
    78
    Par défaut
    Tu as vu le contructeur :
    http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/transform/dom/DOMResult.html#DOMResult(org.w3c.dom.Node)

    Tu peux lui passer un Document

    et le :
    http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/transform/dom/DOMResult.html#getNode()

    te permets de le récupérer, il faut juste caster...

    Cordialement,
    PS : N'oublie pas le tag [Résolu] (en cliquant sur http://pouiller.eclipse.free.fr/avatar/resolu.gif), si ton problème est résolu...

  5. #5
    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
    C'est vrai...
    J'avais bien vu mais je ne savais pas que l'on pouvais caster un Node en Document... Je pensais qu'un Document avais des attributs suppémentaires au Node.

    Merci !

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

Discussions similaires

  1. [XSLT] Applet et transformation XSLT
    Par Summer dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 27/01/2006, 11h07
  2. transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/07/2005, 16h43
  3. transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/06/2005, 16h46
  4. xhtml-->xml transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 15/06/2005, 15h23
  5. xhtml->xml transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 14/06/2005, 11h17

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