Fin prématurée de l'Erreur de fichier

Je suis à l'aide de XSL pour configurer mon fichier XML dans un plus petit format XML. Mon fragments de code sont donc:

public class MessageTransformer {

public static void main(String[] args) {
    try {
        TransformerFactory transformerFactory = TransformerFactory.newInstance();

        Transformer transformer = transformerFactory.newTransformer (new StreamSource("sample.xsl"));
        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.setOutputProperty(OutputKeys.METHOD, "xml");
        transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
        transformer.transform(new StreamSource ("sample.xml"),  
            new StreamResult( new FileOutputStream("sample.xml"))
        );
    }
    catch (Exception e) {
        e.printStackTrace( );
    }    
}   
}

J'ai eu cette erreur

ERROR:  'Premature end of file.'
ERROR:  'com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Premature end of file.'

Lorsque j'utilise le fichier XSL pour transformer un fichier XML manuellement je n'ai aucun problème. Cependant, avec ce fichier JAVA je ne peut pas transformer.

Quel serait le problème?

J'ai le sentiment que le fait d'avoir le StreamSource (votre xml d'origine) et StreamResult (le résultat après xslt) pointent vers le même fichier, pourraient vous causer des ennuis.

OriginalL'auteur gencay | 2011-06-09