Creating an Event Producer Consumer
Creating an Event Producer Consumer
Creating an Event Producer/Consumer
The first step is to instantiate an event factory and then create an instance of an event
producer/consumer:
XMLEventFactory m_eventFactory = XMLEventFactory.newInstance();
public EventProducerConsumer() {
}
...
try {
EventProducerConsumer ms = new EventProducerConsumer();
XMLEventReader reader =
XMLInputFactory.newInstance().createXMLEventReader(
new java.io.FileInputStream(args[0]));
XMLEventWriter writer =
XMLOutputFactory.newInstance().createXMLEventWriter(
System.out);
Creating an Iterator
The next step is to create an iterator to parse the stream:
while(reader.hasNext()) {
XMLEvent event = (XMLEvent)reader.next();
if (event.getEventType() == event.CHARACTERS) {
writer.add(ms.getNewCharactersEvent(event.asCharacters()));
} else {
writer.add(event);
}
}
writer.flush();
Creating a Writer
The final step is to create a stream writer in the form of a new Character event:
Characters getNewCharactersEvent(Characters event) {
if (event.getData().equalsIgnoreCase(
"Name1")) {
return m_eventFactory.createCharacters(
Calendar.getInstance().getTime().toString());
}
//else return the same event
else {
return event;
}
}
Example Code
Chapter 18 · Streaming API for XML
579