SAX(8) サンプルプログラムの作成(3)

2006年02月26日(日)更新


SAXを使ったプログラムの例 SAXSample1とSampleSAXHandler1

たけち: 前回、SAXを使ったプログラムの例として、SAXSample1とSampleSAXHandler1のプログラムの内容について見たよね。

さらら: えぇ。だいたいの感じはつかめたと思うけど、でもまだ実感としては・・・・・。

たけち: そうだね。実際にSAXSample1とSampleSAXHandler1を作成しよう。

さらら: うん。そうだね。

たけち: 今回、Eclipseを使って次のような手順でプログラム作成と動作確認をしてみるよ。

さらら: はい。

  1. EclipseでプロジェクトSAXSample_1を作成する
  2. 必要なライブラリ(Xerces)を設定する
  3. SAXSample1とSampleSAXHandler1を作成する
  4. 読み込む簡単なXMLファイルを作成する
  5. Eclipseでプログラムを動かしてみる

1. EclipseでプロジェクトSAXSample_1を作成する

たけち: じゃ、Eclipseを起動して。

さらら: あっ。はい。

たけち: そうしたら、SAXSample_1という名前のプロジェクトを作成して。

さらら: あっ、えっ〜と。[ファイル(F)]→[新規作成(N)]→[プロジェクト(R)]を選択して、っと・・・

プロジェクトの作成〜クラスの作成手順については、SAX(5) Eclipseで簡単なJavaプログラム作成を参照してください。

プロジェクトSAXSample_1を作成


2. 必要なライブラリ(Xerces)を設定する

さらら: プロジェクトSAXSample_1ができたわ。

たけち: じゃ、次に、ライブリを設定しよう。プロジェクトSAXSample_1を選択して、[プロパティ]を選択してね。

さらら: はい。。。あっ、SAXSample_1のプロパティというウィンドウが表示されたわ。

ライブラリの設定(1)

たけち: そのウィンドウの中の左に表示されている項目の中からJavaのビルド・パスを選択して。

さらら: はい。

たけち: そうしたら、ライブラリ(L)というタブが表示されるから、その右に表示されているボタンの中から、[外部JARの追加(X)]というボタンをクリックして。

ライブラリの設定(2)

さらら: はい。あ、また小さなウィンドウが表示されたわ。

たけち: そのウィンドウの中の上に表示されているところを、xercesをインストールしたフォルダーにして。。

さらら: えっ、あっ。。。xercesってどこにインストールしたっけ.....

たけち: SAX(3) SAXを使う準備-2 Xercesでは、C:\xerces フォルダーにインストールしたよね。

さらら: あっ、そっか。

たけち: そうしたら、図のような一覧が表示されるから、その中から

  • xercesImple.jar
  • xml-apis.jar
を選択して、[開始(O)]ボタンをクリックして。

ライブラリの設定(3)

さらら: はい。あっ、、SAXSample_1のプロパティウィンドウに選んだものが表示されたわ。

たけち: そうそう。それでOKだね。

ライブラリの設定(4)


3. SAXSample1とSampleSAXHandler1を作成する

たけち: さっ、じゃ、SAXSample1とSampleSAXHandler1を作成しよう。

さらら: は〜い。

たけち: まずは、図のようにフォルダーを作ってくれるかな。別に、こうしなくちゃいけないわけじゃないんだけど。。。

フォルダーの構成

さらら: あっ、いいわよ、別に。フォルダーはどうやって作れるの?

たけち: 図のようにやってみて。

さらら: はい。

フォルダーの作成(1)

フォルダーの作成(2)

さらら: 5つのフォルダーを作ったわ。

たけち: じゃあ、もう少しだけ設定して欲しいんだけど、図のようにSAXSample_1のプロパティウィンドウを開いて、フォルダーの設定をやってみて。

さらら: 分かったわ。

フォルダーの設定

さらら: できたわ。

たけち: おつかれさま。じゃ、前回説明した、SAXSample1とSampleSAXHandler1を作るね。まず、それぞれの名前でクラスを、"src/sax/study/sample_1"の下に作ってくれるかな。

  • SAXSample1.java
  • SampleSAXHandler1.java

さらら: えぇ、分かったわ。クラスの作り方は、SAX(5) Eclipseで簡単なJavaプログラム作成を参照すればいいのよね。

たけち: そうしてね。

クラスの作成

さらら: 二つのクラスを作ったわ。でも、まだ、前回説明してもらったソースコードは作っていないのよね。

たけち: そうそう。次にそれぞれのソースコードを載せておくから、これを使ってEclipseの各クラスの編集箇所に入力してみて。

さらら: あっ、それなら簡単だわ。

SAXSample1.java

package sax.study.sample_1;


import java.io.IOException;

import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;

import org.xml.sax.helpers.XMLReaderFactory;


public class SAXSample1 {

    protected static final String PARSER_NAME = "org.apache.xerces.parsers.SAXParser";
  
  public static void main(String[] args) {
    
    String fileName = args[0];

    try {
        XMLReader parser = XMLReaderFactory.createXMLReader(PARSER_NAME);

        SimpleSAXHandler sh = new SimpleSAXHandler();
        parser.setContentHandler(sh);

        parser.parse(fileName);

      } catch (SAXException e) {
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      }

    }

}

SimpleSAXHandler.java

package sax.study.sample_1;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class SimpleSAXHandler extends DefaultHandler {


    public void startDocument() throws SAXException {

      System.out.println("Documentの開始です。");

    }

    public void endDocument() throws SAXException {

      System.out.println("Documentの終了です。");

    }


    public void startElement(String uri,
        String name,
        String qualifiedName,
        Attributes attributes)
    {
    System.out.println("要素名 " + name + " の開始です。");
    }


    public void endElement(String uri,
        String name,
        String qualifiedName)
    {
    System.out.println("要素名 " + name + " の終了です。");
    }

}

さらら: 二つのクラスのソースコードを入力したわよ。といっても、コピー、ペーストしただけなんだけど・・・で、これで、動かせるの?

たけち: おつかれさま。そうだね。これで動かせる準備がほぼ整ったね。

さらら: ほぼ??

たけち: 読み込ませるXMLファイルを作らなくちゃね。それと・・・

さらら: あっ、そっか・・・う〜ん・・・

たけち: じゃ、今回はここまでにして、次回にXMLファイルの作成をして、読み込ませてみようかな。

さらら: あっ、そうそう。。。へへ、おなかすいちゃった。

たけち: じゃ、今回はここまで。

さらら: は〜い。

→次回は、プログラムを実行させてみましょう。・・・ (^ ^;