Use JDOM to build a document
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import java.util.*;
import java.io.*;
public class JDOMTest {
public static void showBooks( Element root ) {
List books = root.getChildren( "book" );
for( Iterator i=books.iterator(); i.hasNext(); ) {
Element book = ( Element )i.next();
System.out.println( "Book: " + book.getAttributeValue( "category" ) + ", " +
book.getChildTextTrim( "title" ) + ", " +
book.getChildTextTrim( "author" ) + ", " +
book.getChildTextTrim( "price" ) );
}
}
public static void main( String[] args ) throws Exception{
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build( "book.xml" );
Element root = doc.getRootElement();
System.out.println( "Book List Before: " );
showBooks( root );
// Add a new book
Element newBook = new Element( "book" );
newBook.setAttribute( "category", "fiction" );
Element newTitle = new Element( "title" );
newTitle.addContent( "Desecration" );
Element newAuthor = new Element( "author" );
newAuthor.addContent( "Tim LaHaye" );
Element newPrice = new Element( "price" );
newPrice.addContent( "19.95" );
newBook.addContent( newTitle );
newBook.addContent( newAuthor );
newBook.addContent( newPrice );
root.addContent( newBook );
System.out.println( "Book List After: " );
showBooks( root );
XMLOutputter out = new XMLOutputter( " ", true );
out.output( root, System.out );
}
}
<books>
<book category="fiction">
<title>title 1</title>
<author>Tim Lahaye</author>
<price>14.95</price>
</book>
<book category="science fiction">
<title>title 2</title>
<author>Tim Lahaye</author>
<price>14.95</price>
</book>
</books>
Related examples in the same category