2010-04-07 2 views
1

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

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

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

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

Не следует ли считать, что это единственное событие ProcessingInstruction?

ответ

2

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

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 версии вы используете?

+0

интересный - я использую Java 5 ... –

+2

@Drew: насколько я знаю, это должно означать, что вы используете стороннюю реализацию StAX, потому что она только стала частью JDK в Java 6. Итак Я бы посмотрел, есть ли обновление для этой библиотеки или если это известная ошибка. –

+0

Спасибо за помощь и поставили меня на правильный путь. Как вы указали, проблема не была связана с StAX. Я манипулировал xml до отправки его в StAX (избегая первого «<»), что вызывало проблему. FYI ... похоже, что StAX был включен в Java 5 (http://java.sun.com/javaee/5/docs/api/javax/xml/stream/package-summary.html) –

Смежные вопросы