【Java】XMLファイルを出力するサンプルコードを紹介!
  • facebookページ
  • twitterページ
  • 2021.04.01

    【Java】XMLファイルを出力するサンプルコードを紹介!

    XML(Extensible Markup Language)について

    XML(Extensible Markup Language)とは、任意の用途向けにデータ構造をシンプルに表現したマークアップ言語のことです。

    マークアップ言語とは、タグと値のセットで構成され、文章を構造化する言語をいいます。

    例えば、Webサイト作成で使われる HTML言語 が有名どころのマークアップ言語ですね。

    HTMLがWebサイトの情報を記述するる言語に対し、XMLはデータ交換のための汎用のデータ形式となっています。

    XMLの特徴
    • インターネット上での使いやすさ
    • 広くさまざまなアプリケーションをサポート
    • XML文書を処理するプログラムを簡単に記述可能
    • オプション機能を可能な限りゼロに
    • 規則に従っており簡潔である
    • 読みやすくて分かりやすい
    • すぐに作成可能

    これらの特徴があるのがXMLです。

    また、XMLで書かれた文書のことを「XMLドキュメント」と言います。

    XMLドキュメントは、タグと値のセットで文書を記述していきます。

    文書の記述ルールは下記の通りです。

    要素名のタグ <要素名> を用意し、この中に内容・値を記述します。

    要素名には属性も付けられるようになっています。

    そして、 </要素名> で要素タグを閉じます。

    JavaでXMLを出力する方法

    ここでは、JavaでXMLファイルを出力する方法を見ていきましょう。

    サンプルコードは下記の通りです。

    サンプルコードの内容を簡単に見ていきましょう。

    上記の部分で、Documentインスタンスの作成を行っています。

    DocumentBuilderクラスは、XML文書からDOM(Document Object Model)のDocumentインスタンスを取得するAPIです。

    DOMというのは、XML文書にアクセスするためのオブジェクトモデルとその標準インタフェースに関する規格ですね。

    要素がノードで表現され、ノードの関係がノードツリーで表現されます。

    DocumentBuilder.newDocumentメソッドを利用し、DOMオブジェクトの新しいインスタンスを doc として保持しています。

    documentメソッドを使って、要素や属性を作成しました。

    それぞれのメソッドは、次のような役割を果たしています。

    • createElement:要素を作成する
    • appendChild:子要素を追加する
    • setAttribute:属性名とその値を設定する
    • createText:要素内容を作成する

    最後に、writexml関数でXMLファイルの作成・出力をしています。

    Transformerは、ソースコードの記述内容を結果ツリーへ変換処理しています。

    Transformerインスタンスを生成し、改行指定やエンコーディングの設定をした上で、trasformメソッドでXMLファイルを作成する流れです。

    上記のサンプルプログラムを実行すると、同ディレクトリにSample.xmlが出力されます。

    中身を確認すると、下記のように記述されているはずです。

    XMLのインデント出力

    JavaでXMLのインデントは下記の部分で設定しています。

    yesにすることでインデントあり、noにすることでなしになります。

    先ほどのサンプルではインデントありにしましたので、ここではnoで出力結果を見てみましょう。

    次のように記述します。

    実行結果は下記の通り、全てが1文で出力されます。

    XML出力の文字コード指定

    文字コードの出力は下記の部分で設定しています。

    今回は「UTF-8」にしていますが、他にも「Shift-JIS」など文字コードは変更可能です。

    文字コードを指定する場合は、第二引数に好きな文字コードを指定しましょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE