Stax处理指令

时间:2010-04-07 15:27:54

标签: java xml stax

我正在尝试使用StAX解析这样的处理指令:

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

StAX似乎没有将此识别为处理指令。它找到了这些事件:

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

不应该将整个事件视为单个ProcessingInstruction事件吗?

1 个答案:

答案 0 :(得分: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版本?