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 :

[JAXP] passage parametres lors de chainage xslt


Sujet :

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

  1. #1
    Pi2
    Pi2 est déconnecté
    Membre actif

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 134
    Points : 234
    Points
    234
    Par défaut [JAXP] passage parametres lors de chainage xslt
    Bonjour,
    Lorsqu'on enchaîne les transformations XSLT, avec la méthode utilisant des XMLFilter, est-il possible de passer des paramètres aux transformeurs?
    Ou faut-il, pour cela, forcément abandonner les XMLFilter et instancier directement des TransformerHandler qu'on chaine les uns aux autres?
    Merci d'avance,
    Pi2.

  2. #2
    Pi2
    Pi2 est déconnecté
    Membre actif

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 134
    Points : 234
    Points
    234
    Par défaut
    Il semble qu'il faille forcément passé par des TransformerHandler pour avoir accès aux transformers et pouvoir, ainsi, leur ajouter des paramètres. Méthode détaillée ci-dessous:

    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
    try {
     
      //1. creates an handler for each xsl:
      String[] xslURLs = ... // tableau contenant le nom des xsl a appliquer
      TransformerHandler[] handlers = new TransformerHandler[xslURLs.length];
     
      for (int i = 0; i < xslURLs.length; i++) {
    	handlers[i] = ((SAXTransformerFactory) tFactory).newTransformerHandler(new StreamSource(xslURLs[i]));
    	//add parameters:
            Transformer current = handlers[i].getTransformer();
    	current.setParameter(key1, value1);
            current.setParameter(key2, value2); //etc autant qu'on veut
      }
     
     
      //2. Wire the output of each handler to the next one:
      for (int i = 0; i < handlers.length-1; i++) {
          handlers[i].setResult(new SAXResult(handlers[i+1]));
      }
      handlers[handlers.length-1].setResult(new StreamResult(endingWriter));
     
     
      //3. Applies transformations:
      FileInputStream stream = new FileInputStream(xmlSource);
      XMLReader reader = XMLReaderFactory.createXMLReader();
      reader.setContentHandler(handlers[0]);
      reader.parse(new InputSource(new BufferedInputStream(stream)));
      stream.close();
     
    } catch (..) ...

Discussions similaires

  1. probleme passage parametre dans l'url IE
    Par kurthectic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/04/2006, 15h40
  2. Parametre lors d'instalation
    Par badrel dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 30/12/2005, 10h45
  3. [servlet] passage parametre entier
    Par cmoa59 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 03/03/2005, 10h03
  4. Fichier bat + FTP + passage parametres
    Par Leti dans le forum Scripts/Batch
    Réponses: 20
    Dernier message: 13/12/2004, 18h21
  5. [langage] Passage de parametre lors de l execution
    Par WetzlarMan dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2004, 13h28

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