我知道如何利用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中的方法实现,这些方法如何工作?这个逻辑来自何处?
提前感谢您的帮助。
答案 0 :(得分:1)
由于这些是接口,因此可以有多个实现。例如,在我的开发环境中,我有几个可用的XMLEventReader实现,包括例如:
com.sun.xml.stream.XMLEventReaderImpl
org.codehaus.stax2.XMLEventReader2
第一个是Sun pull XML解析器,它分布在JDK中;第二个是第三方Woodstox解析器的一部分。