Преждевременное завершение файла Ошибка - PullRequest
3 голосов
/ 09 июня 2011

Я использую XSL для настройки моего XML-файла в меньший XML. Мои фрагменты кода таковы:

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( );
    }    
}   
}

Я получил эту ошибку

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

Когда я использую файл XSL для преобразования XML вручную, у меня не возникает никаких проблем. Однако с этим файлом JAVA я не могу преобразовать.

В чем проблема?

Ответы [ 2 ]

6 голосов
/ 09 июня 2011

Вы транслируете из одного и того же файла.Попробуйте изменить его на что-то вроде этого:

transformer.transform(new StreamSource ("sample.xml"),  
        new StreamResult( new FileOutputStream("sample_result.xml"))
    );
0 голосов
/ 31 января 2014

Заполните ваш XML-файл, дайте любой тег, иначе он выдаст ошибку: Преждевременный конец файла.

<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
<Customer>
<person>
    <Customer_ID>1</Customer_ID>
    <name>Nirav Modi</name>
</person>
<person>
    <Customer_ID>2</Customer_ID>
    <name>Nihar dave</name>
</person>
</Customer>

Вот так и попробуйте еще раз.

...