XMLStreamReader类中getEventType()方法的目的是什么

时间:2010-05-22 18:55:37

标签: java xml

我有使用javax.xml包解析xml文件的示例代码。它使用名为getEventType()的方法,但我无法理解这种方法的目的。

我写了一个简单的应用程序来理解它的用处,但是它只输出一些我无法理解的随机数,有些人可以帮助我理解这一点。

以下是我编写的示例代码。

public List parseXML(File f) throws XMLStreamException{
  xmlInputFactory = new WstxInputFactory();

  xmlInputFactory.setProperty(XMLInputFactory2.IS_REPLACING_ENTITY_REFERENCES, Boolean.FALSE);
  xmlInputFactory.setProperty(XMLInputFactory2.IS_SUPPORTING_EXTERNAL_ENTITIES, Boolean.FALSE);
  xmlInputFactory.setProperty(XMLInputFactory2.IS_COALESCING,Boolean.FALSE);
  xmlInputFactory.setProperty(XMLInputFactory2.IS_VALIDATING,Boolean.FALSE);
  xmlInputFactory.configureForSpeed();

  List<Task> tasks = new LinkedList<Task>();

  //xmlStreamReader = xmlInputFactory.createXMLStreamReader(new StringReader(dmml));
  xmlStreamReader = xmlInputFactory.createXMLStreamReader(f);

  int eventType = xmlStreamReader.getEventType();
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  eventType = xmlStreamReader.next();
  System.out.println(eventType);
  /*String currentElement = "";
  String currentElementText = "";
}

2 个答案:

答案 0 :(得分:2)

事件类型告诉您解析器当前指向的实体类型,例如它是元素开始标记,结束标记,属性等等。

事件类型在javadoc中定义。它们都定义为int,因此您需要使用javadoc中的表来理解它们的含义。实际数值列在XMLStreamConstants中。但是,数值本身并不重要,您应该按名称使用XMLStreamConstants - 定义的常量。

答案 1 :(得分:0)

它告诉您xml当前对象的索引