package net.kittyandbear.xml;
//2012-03-18 johnpfeiffer weirdly hasNext is throwing an EOFException
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.stream.XMLEventReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;
public class XMLReader
{
private XMLEventReader eventReader;
private String XMLAsString;
XMLReader( InputStream in )
{
System.out.println( "starting constructor()" );
try{
boolean canContinue = false;
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
eventReader = inputFactory.createXMLEventReader( in );
StringBuilder result = new StringBuilder();
XMLEvent event = null;
//canContinue = eventReader.hasNext();
int i=0;
while( eventReader.hasNext() )
{
event = eventReader.nextEvent();
result.append( event.toString() );
}
XMLAsString = result.toString();
System.out.println( "finishing constructor()" );
}catch( XMLStreamException xmlse )
{ xmlse.printStackTrace();
}finally{
try{
if( in != null)
{ in.close();
}
}catch( IOException ioe )
{ ioe.printStackTrace();
}
}
}
String getString()
{
return XMLAsString;
}
void parseXML()
{
/*Item item = null;
while (eventReader.hasNext()) {
XMLEvent event = eventReader.nextEvent();
if (event.isStartElement()) {
StartElement startElement = event.asStartElement();
// If we have a item element we create a new item
if (startElement.getName().getLocalPart() == (ITEM)) {
item = new Item();
// We read the attributes from this tag and add the date
// attribute to our object
Iterator<Attribute> attributes = startElement
.getAttributes();
while (attributes.hasNext()) {
Attribute attribute = attributes.next();
if (attribute.getName().toString().equals(DATE)) {
item.setDate(attribute.getValue());
}
}
}
if (event.isStartElement()) {
if (event.asStartElement().getName().getLocalPart()
.equals(MODE)) {
event = eventReader.nextEvent();
item.setMode(event.asCharacters().getData());
continue;
}
}
if (event.asStartElement().getName().getLocalPart()
.equals(UNIT)) {
event = eventReader.nextEvent();
item.setUnit(event.asCharacters().getData());
continue;
}
if (event.asStartElement().getName().getLocalPart()
.equals(CURRENT)) {
event = eventReader.nextEvent();
item.setCurrent(event.asCharacters().getData());
continue;
}
if (event.asStartElement().getName().getLocalPart()
.equals(INTERACTIVE)) {
event = eventReader.nextEvent();
item.setInteractive(event.asCharacters().getData());
continue;
}
}
// If we reach the end of an item element we add it to the list
if (event.isEndElement()) {
EndElement endElement = event.asEndElement();
if (endElement.getName().getLocalPart() == (ITEM)) {
items.add(item);
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (XMLStreamException e) {
e.printStackTrace();
}
return items;
switch( event.getEventType() )
{
case XMLStreamConstants.START_DOCUMENT:
StartDocument startDocument = (StartDocument) event;
break;
case XMLStreamConstants.START_ELEMENT:
StartElement startElement = event.asStartElement();
break;
*/
}
} //end class