是否可以/是否有一种简单的方法来找到与START_ELEMENT相对应的结束标记(END_ELEMENT),如下所示?

while(reader.hasNext()){
        XMLEvent event = reader.nextEvent();

        if(event.getEventType() == XMLEvent.START_ELEMENT){
            StartElement startElement = event.asStartElement();
            System.out.println(startElement.getName().getLocalPart());
        }
    }

最佳答案

如果您是通过简单的方法来返回end元素的调用,那么答案是否定的。 SAX解析器是基于事件的解析器,因此它读取XML文件并创建事件。这些事件的来临取决于您如何处理这些事件并建立您的内存结构。

也许您应该使用DOM解析器,该解析器在内存中建立XML结构,并且可以在其中进行导航。或使用一些XML bindig(例如JAXB)将XML转换为Java对象,反之亦然。

08-16 15:08