69 lines
1.8 KiB
Java
69 lines
1.8 KiB
Java
package com.baeldung.xml;
|
|
|
|
import java.io.File;
|
|
import java.util.ArrayList;
|
|
|
|
import javax.xml.bind.JAXBContext;
|
|
import javax.xml.bind.JAXBException;
|
|
import javax.xml.bind.Marshaller;
|
|
import javax.xml.bind.Unmarshaller;
|
|
|
|
import com.baeldung.xml.binding.Tutorial;
|
|
import com.baeldung.xml.binding.Tutorials;
|
|
|
|
public class JaxbParser {
|
|
|
|
private File file;
|
|
|
|
public JaxbParser(File file) {
|
|
this.file = file;
|
|
}
|
|
|
|
public Tutorials getFullDocument() {
|
|
try {
|
|
JAXBContext jaxbContext = JAXBContext.newInstance(Tutorials.class);
|
|
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
|
|
Tutorials tutorials = (Tutorials) jaxbUnmarshaller.unmarshal(this.getFile());
|
|
return tutorials;
|
|
} catch (JAXBException e) {
|
|
e.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void createNewDocument() {
|
|
Tutorials tutorials = new Tutorials();
|
|
tutorials.setTutorial(new ArrayList<Tutorial>());
|
|
Tutorial tut = new Tutorial();
|
|
tut.setTutId("01");
|
|
tut.setType("XML");
|
|
tut.setTitle("XML with Jaxb");
|
|
tut.setDescription("XML Binding with Jaxb");
|
|
tut.setDate("04/02/2015");
|
|
tut.setAuthor("Jaxb author");
|
|
tutorials.getTutorial().add(tut);
|
|
|
|
try {
|
|
JAXBContext jaxbContext = JAXBContext.newInstance(Tutorials.class);
|
|
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
|
|
|
|
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
|
|
|
|
jaxbMarshaller.marshal(tutorials, file);
|
|
|
|
} catch (JAXBException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
public File getFile() {
|
|
return file;
|
|
}
|
|
|
|
public void setFile(File file) {
|
|
this.file = file;
|
|
}
|
|
|
|
}
|