Не удалось проанализировать несколько XML-документов с помощью aalto

Я пытаюсь разобрать сообщение XML, выходящее из сокета TCP, используя Aalto-xml

https://github.com/FasterXML/aalto-xml

Это xml, который я пытаюсь разобрать:

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<employee>
    <id>1</id>
    <name>Alba</name>
    <salary>100</salary>
</employee>

Первое сообщение XML анализируется успешно, но на втором оно выдает исключение. Вот мой метод разбора

В моем классе я определяю члена класса:

private AsyncXMLStreamReader<AsyncByteArrayFeeder> parser = new InputFactoryImpl().createAsyncForByteArray();

Метод разбора:

try {
        parser.getInputFeeder().feedInput(buffer, 0, buffer.length);

        int type = 0;

        //keep looping till event is complete
        while(!parser.getInputFeeder().needMoreInput()) {
                type = parser.next();
            //handle parser event and extract parsed data
            switch (type) {
                case XMLEvent.START_DOCUMENT:
                    System.out.println("start document");
                    break;

                case XMLEvent.START_ELEMENT: {
                     System.out.println("start element: " + parser.getName());
                } break;

                case XMLEvent.END_ELEMENT: {
                    System.out.println("end element: " + parser.getName());
                    } break;

                case XMLEvent.END_DOCUMENT: {
                    System.out.println("end document");
                }break;

                default:
                    break;
            }
        }

        if(type == AsyncXMLStreamReader.EVENT_INCOMPLETE) {
                System.out.println(results);
        }

    } catch (XMLStreamException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Исключение:

com.fasterxml.aalto.WFCException: Illegal processing instruction target: 'xml' (case insensitive) is reserved by the xml specification
 at [row,col {unknown-source}]: [1,112]

Любая помощь будет оценена!

1 ответ

Может показаться, что один и тот же контент подается несколько раз или что-то в этом роде, поэтому объявление XML передается несколько раз. Это из-за смещения, упомянутого в исключении (столбец 122).

Другие вопросы по тегам