This example will show how to create xml document and create xml nodes with the DOM parser . The Document Object Model (DOM) java APIs allows you to create, modify, delete, and rearrange nodes. To create xml we will follow the high level process:
Create DocumentBuilder class Create Element(s) and append to the document Tranform classes into XML and send to an output source The set up section creates a constant where we will validate the output produced using a junit test case . Two additional snippets will show how to output the xml to a file or to your console for local debugging.
Setup String formattedXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<movie id=\"tt0111161\">\n" +
"<rating>9.3</rating>\n" +
"<title>The Shawshank Redemption</title>\n" +
"<genre>Crime|Drama</genre>\n" +
"</movie>\n" +
"" ;
With DOM parser @Test
public void create_xml () throws TransformerException , ParserConfigurationException {
DocumentBuilderFactory dbf = DocumentBuilderFactory . newInstance ();
DocumentBuilder db = dbf . newDocumentBuilder ();
Document movieDocument = db . newDocument ();
org . w3c . dom . Element movieElement = movieDocument . createElement ( "movie" );
movieElement . setAttribute ( "id" , "tt0111161" );
movieDocument . appendChild ( movieElement );
org . w3c . dom . Element ratingElement = movieDocument . createElement ( "rating" );
Text text1 = movieDocument . createTextNode ( "9.3" );
ratingElement . appendChild ( text1 );
movieElement . appendChild ( ratingElement );
org . w3c . dom . Element titleElement = movieDocument . createElement ( "title" );
Text text2 = movieDocument . createTextNode ( "The Shawshank Redemption" );
titleElement . appendChild ( text2 );
movieElement . appendChild ( titleElement );
org . w3c . dom . Element genreElement = movieDocument . createElement ( "genre" );
Text text3 = movieDocument . createTextNode ( "Crime|Drama" );
genreElement . appendChild ( text3 );
movieElement . appendChild ( genreElement );
// Output the XML
TransformerFactory transformerFactory = TransformerFactory . newInstance ();
Transformer transformer = transformerFactory . newTransformer ();
transformer . setOutputProperty ( OutputKeys . INDENT , "yes" );
DOMSource source = new DOMSource ( movieDocument );
StringWriter xmlWrittenToString = new StringWriter ();
StreamResult streamResult = new StreamResult ( xmlWrittenToString );
//transform xml source to result
transformer . transform ( source , streamResult );
assertEquals ( formattedXML , xmlWrittenToString . toString ());
}
Logging output to console StreamResult result = new StreamResult ( System . out );
transformer . transform ( source , streamResult );
Logging output to file StreamResult result = new StreamResult ( Paths . get ( "path" ). toFile ());
transformer . transform ( source , streamResult );
Create xml with dom parser posted by Justin Musgrove on 11 November 2014
Tagged: java and java-xml
Share on: Facebook Google+
All the code on this page is available on github:
CreateXMLWithDomParser.java