1

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

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

StAX 似乎没有将其识别为处理指令。它发现这些事件:

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

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

4

1 回答 1

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版本?

于 2010-04-07T15:37:29.620 回答