Mega Code Archive

 
Categories / Java / XML
 

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>