Java Tips – DOM – XMLドキュメントを作成し、ファイルに出力するには


DOM(Document Object Model)を使用して、XMLドキュメントを作成し、ファイルに出力する手順は以下の通りです。

  1. DocumentBuilderFactoryクラスとDocumentBuilderクラスを使用して、Documentオブジェクトを生成します。
  2. 上記で生成したDocumentオブジェクトを、Transformerクラスのtransformメソッドを使用して、ファイルに出力します。

package net.tk_factory.example.xml.dom;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.apache.log4j.Logger;
import org.w3c.dom.Document;

import net.tk_factory.example.AbstractExample;

/**
 * DOM(Document Object Model)を使用したサンプルプログラムです。<br/>
 * <br/>
 * <b>内容</b>
 * <ol type="1">
 * <li>XMLドキュメントを作成し、ファイルに出力します。</li>
 * </ol>
 *
 * @author Takafumi Kondo (TK Factory)
 */
public class ExampleCreateXMLDocument extends AbstractExample
{
    /** クラス名 */
    private static final String CLASS_NAME =
            ExampleCreateXMLDocument.class.getSimpleName();

    /** ロガー */
    private static final Logger LOGGER =
            Logger.getLogger(ExampleCreateXMLDocument.class.getName());

    /** 出力ファイル名 */
    private static final String OUT_FILE_NAME =
            EXAMPLE_FILE_DIRECTORY +  CLASS_NAME + ".xml";

    /**
     * ExampleCreateXMLDocumentオブジェクトを構築すると、
     * UnsupportedOperationExceptionがスローされます。<br/>
     */
    protected ExampleCreateXMLDocument()
    {
        throw new UnsupportedOperationException();
    }

    /**
     * mainメソッドです。<br/>
     *
     * @param args 引数
     */
    public static void main(String[] args)
    {
        LOGGER.info("[START]" + CLASS_NAME);

        try
        {
            //XMLドキュメントを作成する
            DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docbuilder = dbfactory.newDocumentBuilder();
            Document document = docbuilder.newDocument();

            //XMLドキュメントをファイルに出力する
            TransformerFactory tfactory = TransformerFactory.newInstance();
            Transformer transformer = tfactory.newTransformer();
            File file = new File(OUT_FILE_NAME);
            transformer.transform(new DOMSource(document), new StreamResult(file));
        }
        catch (ParserConfigurationException ex)
        {
            //DocumentBuilderオブジェクトの作成に失敗した場合
            LOGGER.error(getStackTrace(ex));
        }
        catch (TransformerConfigurationException ex)
        {
            //Transformerオブジェクトの作成に失敗した場合
            LOGGER.error(getStackTrace(ex));
        }
        catch (TransformerException ex)
        {
            //XMLドキュメントをファイルに出力する際にエラーが発生した場合
            LOGGER.error(getStackTrace(ex));
        }

        LOGGER.info("[E N D]" + CLASS_NAME);
    }
}

作成されるXMLファイルは以下通りです。

<?xml version="1.0" encoding="UTF-8"?>

関連記事

  1. ソースを見直し、一部、修正しました。

  1. トラックバック 0

return top