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 (..) ... | 
Partager