Инструкция по обработке Stax - PullRequest
1 голос
/ 07 апреля 2010

Я пытаюсь разобрать инструкцию обработки, как это, используя StAX:

<?item something="<some_element></some_element>"?>

StAX, похоже, не распознает это как инструкцию обработки. Он находит эти события:

< - CharacterEvent
?item something=" - CharacterEvent
<some_element> - StartEvent
</some_element> - EndEvent
"?> - CharacterEvent

Разве все это не должно рассматриваться как одно событие ProcessingInstruction?

1 Ответ

2 голосов
/ 07 апреля 2010

Работает, как и ожидалось для меня. Этот код:

String xml = "<?item something=\"<some_element></some_element>\"?><foo></foo>";
XMLEventReader reader = XMLInputFactory.newInstance().createXMLEventReader(new StringReader(xml));
while (reader.hasNext()) {
    final XMLEvent event = reader.nextEvent();
    System.out.println(event + " - " + event.getClass().getSimpleName());
}

Печатает это:

<?xml version="1.0" encoding='null' standalone='no'?> - StartDocumentEvent
<?itemsomething="<some_element></some_element>"?> - ProcessingInstructionEvent
<foo> - StartElementEvent
</foo> - EndElementEvent
ENDDOCUMENT - EndDocumentEvent

Это с Java 6. Какую версию Java вы используете?

...