Freddy Kresna
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 :
- Horstmann, Cay S. , Gary Cornell, 2001, Core Java™ 2, Prentice Hall, California
- javaZoom, 2002, xmlgeneration, 01 Mei 2007, URL : http://www.javazoom.net/services/newsletter/xmlgeneration
Posted at 01:33PM Jun 14, 2007 by Freddy Kresna Tjoenedi in General | Comments[0]