システム開発やデータ連携の現場では、設定ファイルやAPIレスポンスなどでXML形式のデータを扱う機会が多くあります。
この記事では、Javaを使ってXMLを解析し、要素(タグ内の値)や属性を取得する基本的な方法を解説します。
XML解析の代表的な方法
JavaではXMLを解析するために、いくつかのAPIが用意されています。
| 解析方法 | 特徴 |
|---|---|
| DOM(Document Object Model) | メモリ上にXML全体を読み込み、ツリー構造で扱う。小規模ファイル向き。 |
| SAX(Simple API for XML) | イベント駆動型で順次読み込む。大規模ファイル向き。 |
| StAX(Streaming API for XML) | ストリーム処理を行いながら解析。SAXより柔軟。 |
今回は最も基本的なDOMパーサを使用します。
DOMパーサでXMLを解析する手順
以下のサンプルXMLを例にします。
Javaサンプルコード
実行結果
ポイント解説
-
DocumentBuilderFactory:XML解析のためのインスタンスを生成 -
getDocumentElement():ルート要素を取得 -
getElementsByTagName():指定タグのノードリストを取得 -
getAttribute():要素の属性値を取得 -
getTextContent():タグ内のテキスト値を取得
よくあるエラー例
| エラー内容 | 原因と対処法 |
|---|---|
| FileNotFoundException | XMLファイルのパスが誤っている。絶対パスまたは相対パスを確認。 |
| SAXParseException | XML構文が正しくない(タグの閉じ忘れやエンコーディング不一致など)。 |
| NullPointerException | 該当タグが存在しない場合にitem(0)でNullを参照している。要素の存在チェックを追加する。 |
まとめ
-
XML解析ではDOM・SAX・StAXなどの手法がある。
-
小規模なXMLではDOMパーサが使いやすい。
-
ElementやNodeListを通じて要素・属性を自由に操作できる。
JavaでXMLを扱う基本を押さえておくと、設定ファイルや外部システム連携処理をスムーズに開発できます。
