2010-05-22 21 views
1

我使用javax.xml包編寫了用於解析xml文件的示例代碼。它使用了名爲getEventType()的方法,但我無法理解此方法的用途。XMLStreamReader中的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

的事件類型告訴你,比如是個什麼樣的實體解析器當前對準的,它元素的開始標記和結束標記,屬性,等等。

事件類型在javadoc中定義。它們都被定義爲int,所以你需要使用javadoc中的表來理解它們的含義。實際的數值在XMLStreamConstants中列出。但是,數值本身並不重要,您應該使用名稱定義的常量。

+0

謝謝你skaffman的答案。 http://java.sun.com/javase/6/docs/api/javax/xml/stream/XMLStreamReader.html。這個文檔沒有說每個整數值都被賦值了,你能告訴我這些值是在哪裏定義的。 – KItis 2010-05-22 19:08:45

+1

@Kltis:查看編輯答案。 – skaffman 2010-05-22 19:15:49

相關問題