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 :

Transformation d'un xml avec un xsl [DOM]


Sujet :

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

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 85
    Points
    85
    Par défaut Transformation d'un xml avec un xsl
    Bonjour,

    je souhaite modifié un XML avec l'aide de fichiers XSL, jusque là pas de problème, j'utilise le code présent dans la FAQ :

    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
    public static void transformXml(String xml, String xslt, String out) {
    		   try {
    		      // Création de la source DOM
    			    DocumentBuilderFactory fabriqueD = DocumentBuilderFactory.newInstance();
    				DocumentBuilder constructeur = fabriqueD.newDocumentBuilder();
    				File fileXml = new File(xml);
    				Document document = constructeur.parse(fileXml);
    		        Source source = new DOMSource(document);
     
    		      // Création du fichier de sortie
    		        File fileOut = new File(out);
    		        Result resultat = new StreamResult(fileOut);
     
    		      // Configuration du transformer
    		        TransformerFactory fabriqueT = TransformerFactory.newInstance();
    		        StreamSource stylesource = new StreamSource(xslt);
    		        Transformer transformer = fabriqueT.newTransformer(stylesource);
    		        transformer.setOutputProperty(OutputKeys.METHOD, "xml");
     
    		      // Transformation
    		      transformer.transform(source, resultat);
     
    		   }catch(Exception e){
    		      e.printStackTrace();
    		   }
    		}
    Le problème est que je ne souhaite pas passer par des fichiers XML mais par un XML stocké dans un String. (je dois traiter un grand nombre de XML, et j'ai des problèmes pour savoir où stocker les fichiers)
    J'ai donc mes fichiers xsl, et un String dans lequel j'ai le contenu d'un XML, et je souhaite modifié le XML dans le String sans passer par une création de fichier...

    Je bloque, quelqu'un peut-il m'aider?

    Merci beaucoup.

  2. #2
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Salut !
    Tu peux essayer de faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String xmlString; 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse(new InputSource(new StringReader(xmlString)));
    Ca va transformer ta chaine en document DOM. Ensuite tu utilises la méthode de la FAQ
    "Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
    Penser à svp

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 85
    Points
    85
    Par défaut
    merci, pour la création du DOM, c'est OK!

    Par contre, la méthode "transform(Source s, Result r)", prend un Result comme paramètre pour la sortie du XML transformé, et je ne sais pas comment faire pour créer un Result avec un String. (Je ne veux toujours pas de fichier en sortie, juste mon String contenant le XML modifié)...

    Merci pour votre aide!

  4. #4
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    tu peux créer un Result à partir d'un StringWriter

  5. #5
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 85
    Points
    85
    Par défaut
    Merci Xavinou, ça marche avec un StringWriter.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2014, 14h58
  2. Réponses: 1
    Dernier message: 28/06/2007, 02h24
  3. Interroger plusieurs xml avec un xsl
    Par lafracas dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/04/2006, 23h29
  4. voir un XML avec une XSL
    Par frouge dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/01/2006, 16h17
  5. [XSLT][XSD>XML]transformer xsd en xml avec xslt
    Par émile-henri dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 14/06/2005, 15h06

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