Sax plante la 2ème fois !
Bonjour à tous !
J'ai fait cette méthode qui transforme un XML en un autre XML en passant par un XSL :
Code:
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
| public XmlNode getCreateXml() throws DfException, SAXException, IOException, TransformerException
{
String result = null;
XMLReader analyseurSax = XMLReaderFactory.createXMLReader();
InputStream fis = new FileInputStream(xsl.getFile(null));
InputSource sourceEntreeXSL = new InputSource(fis);
SAXSource sourceXSL = new SAXSource(analyseurSax, sourceEntreeXSL);
XmlDocument xmlDoc = new XmlDocument();
InputSource sourceEntreeXML = new InputSource(xmlDoc.getInputStream());
SAXSource sourceXML = new SAXSource(analyseurSax, sourceEntreeXML);
TransformerFactory fabrique = TransformerFactory.newInstance();
Transformer transformateur = fabrique.newTransformer(sourceXSL);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Result sortie = new StreamResult(baos);
transformateur.transform(sourceXML, sortie);
result = new String(baos.toByteArray());
//analyseurSax.
fis.close();
baos.flush();
baos.close(); |
Le problème c'est que ma méthode plante la deuxième fois ou je la lance et j'ai une erreur du style :
Code:
1 2
| javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: java.lang.IllegalStateException: can't declare any more prefixes in this context
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:805) |
Je pense que je ne ferme pas bien quelque chose genre un OutputStream mais je n'arrive pas à savoir quoi !
Merci d'avance pour votre aide !