Java Stax Iterator API方法实现

时间:2017-11-02 15:50:00

标签: java xml xml-parsing stax

我知道如何利用java stax iterator api来读取xml文档,但我想了解XMLEvent和XMLEventReader的实现。

XMLInputFactory xmlInFactory = XMLInputFactory.newFactory();
FileInputStream inStream = new FileInputStream(inFileName);
XMLEventReader xmlEventReader = xmlInFactory.createXMLEventReader(inStream);
while(xmlEventReader.hasNext()){            
    xmlEvent = xmlEventReader.nextEvent();
    if(xmlEvent.isStartElement()){              
            startElement = xmlEvent.asStartElement();
            ---more code---
     }
}

作为XMLEventReader和& XMLEvent是接口,其中是hasNext(),isStartElement()&的实现。 asStartElement()方法?如果没有JDK中的方法实现,这些方法如何工作?这个逻辑来自何处?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

由于这些是接口,因此可以有多个实现。例如,在我的开发环境中,我有几个可用的XMLEventReader实现,包括例如:

  • com.sun.xml.stream.XMLEventReaderImpl

  • org.codehaus.stax2.XMLEventReader2

第一个是Sun pull XML解析器,它分布在JDK中;第二个是第三方Woodstox解析器的一部分。