Freddy Kresna

Thursday Jun 14, 2007

Membuat Dokumen XML

Membuat dokumen XML Pendekatan pertama kali yang saya gunakan adalah dengan menggunakan DOM tree, Untuk membuat DOM tree dimulai dengan document kosong

Document doc = builder.newDocument();

Gunakan method createElement dari class Document untuk membangun element dari document anda

Element rootElement = doc.createElement(rootName); Element childElement = doc.createElement(childName);

Tambahkan rootElement pada document dan tambahkan child node pada parent mereka

doc.appendChild(rootElement); rootElement.appendChild(childElement);

Untuk memberi element attribute dapat dilakukan dengan cara :

rootElement.setAttribute(name, value);

Berikut ini adalah kode lengkapnya :

import java.io.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;

public class testXML extends JFrame
{
	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	private DocumentBuilder builder;	
	
	public Document buildDocument()
        {
		try
		{
			builder = factory.newDocumentBuilder();
		}
		catch (ParserConfigurationException e)
		{
		    e.printStackTrace();
	        }
		Document doc = builder.newDocument();
		Element svgElement = doc.createElement("svg");
		doc.appendChild(svgElement);
		svgElement.setAttribute("width", "" + "123");
		svgElement.setAttribute("height", "" + "456");   
              
                Element rectElement = doc.createElement("rect");
                rectElement.setAttribute("x", "" + "x");
                rectElement.setAttribute("y", "" + "y");
                rectElement.setAttribute("width", "" + "123");
                rectElement.setAttribute("height", "" + "456");
                rectElement.setAttribute("fill", "red");
                svgElement.appendChild(rectElement);
      
                return doc;
        }
   
	public void proses()
	{
		try
		{
		   JFileChooser chooser = new JFileChooser();
	           if (chooser.showSaveDialog(this) != JFileChooser.APPROVE_OPTION) return;
	           File f = chooser.getSelectedFile();
	           Document doc = buildDocument();         
		   FileOutputStream fos = new FileOutputStream(f);
			
                   // XERCES 1 or 2 additionnal classes.
                   OutputFormat of = new OutputFormat("XML","ISO-8859-1",true);
                   of.setIndent(1);
                   of.setIndenting(true);
                   of.setDoctype(null,"users.dtd");
                   XMLSerializer serializer = new XMLSerializer(fos,of);
                   // As a DOM Serializer
                   serializer.asDOMSerializer();
                   serializer.serialize( doc.getDocumentElement() );
                   fos.close();
		}
		catch(Exception e)
		{
		   System.out.println(e);
		}	
	}	
	
	public static void main(String[] args)
	{
		testXML t = new testXML();
		t.proses();
	}
}
referensi :
  1. Horstmann, Cay S. , Gary Cornell, 2001, Core Java™ 2, Prentice Hall, California
  2. javaZoom, 2002, xmlgeneration, 01 Mei 2007, URL : http://www.javazoom.net/services/newsletter/xmlgeneration

Comments:

Post a Comment:
Comments are closed for this entry.

Calendar

Feeds

Search

Links

Navigation

Referers