【Java】XML parserとは?読み込み方法とサンプルも紹介
  • facebookページ
  • twitterページ
  • 2021.04.01

    【Java】XML parserとは?読み込み方法とサンプルも紹介

    XMLとは?

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

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

    Webサイト作成で使われる HTML がよく聞くマークアップ言語です。

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

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

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

    XMLドキュメントとは?

    XMLドキュメントは、その名の通りXMLで書かれた文書のことです。

    タグと値のセットで文書を記述していきます。

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

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

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

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

    これらのルールに則って、記述したXML文書のサンプルが下記の通りです。

    JavaでXMLを読み込む方法とサンプル

    XMLはJavaでも読み込むことができます。

    読み込むためには、専用のAPI(Application Programming Interface)を使うことが必要です。

    JavaでXMLを読み込む際に使う主なAPIには、下記の4種類があります。

    JavaでXMLを読み込むAPI
    • DOM(Document Object Model)
    • SAX(Simple API for XML Processing)
    • StAX(Streaming API for XML)
    • XPath(XML Path Language)

    それぞれについて、簡単に説明します。

    DOM(Document Object Model)

    DOMは、要素がノードで表現され、ノードの関係がノードツリーで表現されたものです。

    ノードは節や集合点といった意味の言葉ですね。

    ツリー構造は、パソコン内のフォルダやファイルにも使われている表現方法で、これを用いた要素の検索と操作が得意とされています。

    SAX(Simple API for XML Processing)

    SAXは、先頭から順番に要素を1つずつイベントの連続として読み込むものです。

    これによって、プログラムはイベントに合わせて要素や属性を受け取り、イベントに対応するメソッドで処理ができるようになっています。

    必要な要素の情報を簡単に取得できる特徴がある一方で、XMLのツリー構造を意識したプログラミングは難しいとされています。

    StAX(Streaming API for XML)

    StAXは、SAXと同じくイベント連続として読み込むものです。

    SAXとの違いは、イベントの取り扱い方ですね。

    StAXはPull型であり、イベントの種類をStAXのクラスに問い合わせ、必要な処理を自身で呼び出します。

    SAXよりも制限が緩く、決まったクラスやインターフェイスを継承・実装する必要がないという特徴があります。

    XPath(XML Path Language)

    XPathは、XMLの検索方法の1つでデータベースへのSQLに似ているものです。

    他のAPIとは異なり、XPath構文で検索条件を記述してXMLに問い合わせると、条件を満たす要素・テキストを簡単に取得できます。

    必要な情報をダイレクトかつ短いプログラム行数で取得できるのが特徴です。

    javax.xml.parsersパッケージについて

    Java XML のparseメソッドは、指定した内容をXML文書として構文解析し、Documentオブジェクトを返すメソッドです。

    javax.xml.parsersパッケージは、下記の4つのクラスをサポートしています。

    javax.xml.parsersパッケージの4つのクラス
    • DocumentBuilder:XMLドキュメントからDOM Documentインスタンスを取得するAPIを定義
    • DocumentBuilderFactory:アプリケーションでXMLドキュメントからDOMオブジェクト・ツリーを生成するパーサーを取得できるファクトリAPIを定義
    • SAXParser:XMLReader実装クラスをラップするAPIを定義します。
    • SAXParserFactory:アプリケーションがSAXベースのパーサーを構成および取得してXMLドキュメントを構文解析できるようにするファクトリAPIを定義します。

    サンプルプログラムにも使用しているクラスですね。

    参考:パッケージ javax.xml.parsers



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

    この記事をシェア

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









    ABOUT US

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

    READ MORE