StAX的两种处理模式

Cursor 和 Iterator API 的区别

在读取 XML 文档时,迭代器读取器从其nextEvent()调用中返回一个 XML 事件对象。此事件提供有关我们遇到的 XML 标记类型(元素、文本、注释等)的信息。收到的事件是不可变的,因此我们可以传递应用程序以安全地处理它。

XMLEventReader reader = ...;
 
while(reader.hasNext()){
    XMLEvent event = reader.nextEvent();
 
    if(event.getEventType() == XMLEvent.START_ELEMENT){
        //process data
    } 
    //... more event types handled here...
}

与 Iterator 不同,游标的工作方式类似于 JDBC 中的 Resultset。如果光标移动到 XML 文档中的下一个元素。然后,您可以直接在游标上调用方法来获取有关当前事件的更多信息。

XMLStreamReader streamReader = ...;
 
while(streamReader.hasNext()){
    int eventType = streamReader.next();
 
    if(eventType == XMLStreamReader.START_ELEMENT){
        System.out.println(streamReader.getLocalName());
    }
 
    //... more event types handled here...
}

迭代器 API 示例

下面演示了如何使用 StAX 基于迭代器的API 将 XML 文档读取到对象。

XML文件如下:


  
     Lokesh Gupta
      Author
  
  
     Brian Lara
      Cricketer
  

为了读取该文件,我按以下步骤编写了程序:

  • 创建一个迭代器并开始接收事件。

  • 一旦你得到open 'employee' t

你可能感兴趣的:(java,xml)