Bonjour,

J'aimerais savoir s'il est possible de transformer un XML avec un XSL, sachant que le deuxième XML est en mémoire (String, document ou autre)?

Quelque chose du genre :

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
31
 
XMLReader xmlReader = null;
try {
	xmlReader = XMLReaderFactory.createXMLReader();
} catch (SAXException e) {
	e.printStackTrace();
}
 
// 1er fichier XML
InputSource xmlSource = new InputSource(new FileReader(xmlFilePath1));
SAXSource saxXmlSource = new SAXSource(xmlReader, xmlSource);
 
// Le fichier XSL
InputSource xslSource = new InputSource(new FileReader(xslFilePath));
SAXSource saxXslSource = new SAXSource(xmlReader, xslSource);
 
// Résultat en mémoire
StringWriter stringWriter = new StringWriter();
Result xmlTransformed = new StreamResult(stringWriter);
 
// Usine à transformations
TransformerFactory fabrique = TransformerFactory.newInstance();
 
// Un transformateur
Transformer transformateur = fabrique.newTransformer(saxXslSource);
 
// 2ème fichier XML
transformateur.setParameter("source2", xmlFilePath2);
 
// Transformation
transformateur.transform(saxXmlSource, xmlTransformed);
Merci.