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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
package xml;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamResult;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
public class XSLTransformer3 {
public static void main(String[] args) {
try {
System.setProperty("org.xml.sax.driver", "org.apache.xerces.parsers.SAXParser");
XMLReader analyseurSax = XMLReaderFactory.createXMLReader();
InputSource sourceEntreeXSL = new InputSource(new FileInputStream("feuille.xsl"));
SAXSource sourceXSL = new SAXSource(analyseurSax, sourceEntreeXSL);
InputSource sourceEntreeXML = new InputSource(new FileInputStream("grosFichier.xml")); // > à 200Mo
SAXSource sourceXML = new SAXSource(analyseurSax, sourceEntreeXML);
TransformerFactory fabrique = TransformerFactory.newInstance();
Templates modeles = fabrique.newTemplates(sourceXSL);
Transformer transformateur = modeles.newTransformer();
transformateur.setOutputProperty(OutputKeys.METHOD, "xml");
transformateur.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
transformateur.setOutputProperty(OutputKeys.INDENT, "no");
File oFic = new File("resultat.xml"); // fichier obtenu après transformation
FileOutputStream fos = new FileOutputStream(oFic);
if (fos != null) {
Result sortie = new StreamResult(fos);
transformateur.transform(sourceXML, sortie);
}
fos.flush();
fos.close();
}
catch (TransformerConfigurationException e) {
e.printStackTrace();
}
catch (SAXException e) {
e.printStackTrace();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (TransformerException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
} |
Partager