2010-05-22 6 views
1

У меня есть пример кода, написанного для разбора XML-файла с использованием пакета javax.xml. он использует метод, называемый getEventType(), но я не могу понять цель этого метода.Какова цель метода getEventType() в XMLStreamReader Класс

Я написал простое приложение, чтобы понять его полезность, но он выводит только некоторые случайные числа, для которых я не могу иметь никакого смысла, может кто-нибудь помочь мне правильно понять эту точку.

Вот пример кода, который я написал.

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

типы событий вам сказать, какого рода сущности парсер в настоящее время указал на, например, является его начальный тег элемента, и конечный тег, атрибут, и так далее.

Типы событий определены в javadoc. Все они определены как int, поэтому вам нужно использовать таблицу в javadoc, чтобы понять, что они означают. Фактические числовые значения перечислены в XMLStreamConstants. Однако числовые значения сами по себе не интересны, вы должны использовать XMLStreamConstants -определенные константы по имени.

+0

Спасибо за скаффмана за ответ. http://java.sun.com/javase/6/docs/api/javax/xml/stream/XMLStreamReader.html. Этот документ не говорит, для которого назначено каждое целочисленное значение, не могли бы вы сказать, где указаны эти значения. – KItis

+1

@Kltis: см. Отредактированный ответ. – skaffman