Created
December 14, 2012 22:07
-
-
Save nraychaudhuri/4289102 to your computer and use it in GitHub Desktop.
Jaxb with Stax parser
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import static javax.xml.stream.XMLStreamConstants.CHARACTERS; | |
import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; | |
import static javax.xml.stream.XMLStreamConstants.END_DOCUMENT; | |
import java.io.FileOutputStream; | |
import java.io.FileReader; | |
import javax.xml.bind.JAXBContext; | |
import javax.xml.bind.Marshaller; | |
import javax.xml.bind.Unmarshaller; | |
import javax.xml.stream.XMLInputFactory; | |
import javax.xml.stream.XMLOutputFactory; | |
import javax.xml.stream.XMLStreamReader; | |
import javax.xml.stream.XMLStreamWriter; | |
import generated.*; | |
public class ChunkReadWrite { | |
public static void main(String[] args) throws Exception { | |
String inFile = args[0]; | |
// set up a StAX reader | |
XMLInputFactory xmlif = XMLInputFactory.newInstance(); | |
XMLStreamReader xmlr = xmlif.createXMLStreamReader(new FileReader(inFile)); | |
//set up JAXB context | |
JAXBContext jaxbContext = JAXBContext.newInstance(Programs.Program.class); | |
Unmarshaller um = jaxbContext.createUnmarshaller(); | |
// move to the root element and check its name. | |
xmlr.nextTag(); | |
xmlr.require(START_ELEMENT, null, "on"); | |
while (xmlr.getEventType() != END_DOCUMENT) { | |
System.out.println("Tag name " + xmlr.getLocation()); | |
if(xmlr.getEventType() == START_ELEMENT && xmlr.getLocalName() == "program") { | |
xmlr.require(START_ELEMENT, null, "program"); | |
Programs.Program contact = (Programs.Program) um.unmarshal(xmlr); | |
System.out.println(">>> Title " + contact.getTitles().getTitle().get(0).getValue()); | |
} else { | |
xmlr.next(); | |
} | |
} | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment