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