JavaでXMLファイルを読む方法 - (JDOM Parser)

JavaでXMLファイルを読み取る方法-(JDOMパーサー)

JDOMは、非常に単純に、XMLドキュメントのJava表現です。 JDOMは、簡単で効率的な読み取り、操作、および書き込みのためにそのドキュメントを表す方法を提供します。 APIは単純で、軽量で高速であり、Javaプログラマー向けに最適化されています。 DOMとSAXの両方にうまく統合できますが、DOMとSAXに代わるものです。

JDOM、Java XMLパーサーは、XMLドキュメントへのアクセス方法がよりユーザーフレンドリーです。

この例では、JDOMを使用してXMLファイルを読み取り、各要素を順番に印刷する方法を示します。

1. JDOMライブラリーをダウンロードする

JDOMは、JDKにバンドルされているSAXやDOMとは異なります。 JDOMを使用するには、ライブラリを手動でダウンロードする必要があります。

JDOM official siteからJDOMを取得するか、Mavenを使用している場合は次の依存関係を宣言します。

    
    jdom
    jdom
    1.1
    

2. XMLファイル

次のようなXMLファイル


    
        yong
        mook kim
        example
        100000
    
    
        low
        yin fong
        fong fong
        200000
    

3. Javaファイル

JDOMパーサーを使用して、上記のXMLファイルを解析します。

import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class ReadXMLFile {
    public static void main(String[] args) {

      SAXBuilder builder = new SAXBuilder();
      File xmlFile = new File("c:\\file.xml");

      try {

        Document document = (Document) builder.build(xmlFile);
        Element rootNode = document.getRootElement();
        List list = rootNode.getChildren("staff");

        for (int i = 0; i < list.size(); i++) {

           Element node = (Element) list.get(i);

           System.out.println("First Name : " + node.getChildText("firstname"));
           System.out.println("Last Name : " + node.getChildText("lastname"));
           System.out.println("Nick Name : " + node.getChildText("nickname"));
           System.out.println("Salary : " + node.getChildText("salary"));

        }

      } catch (IOException io) {
        System.out.println(io.getMessage());
      } catch (JDOMException jdomex) {
        System.out.println(jdomex.getMessage());
      }
    }
}

出力

First Name : yong
Last Name : mook kim
Nick Name : example
Salary : 100000
First Name : low
Last Name : yin fong
Nick Name : fong fong
Salary : 200000

Note
次の2つの例もあります。