ホーム > X-Plus > XML Square >  デベロッパーズコーナー  >  DOMプログラミング講座

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

デベロッパーズコーナー:DOMプログラミング講座 I(8)

2001年08月10日作成 

使って理解するDOMプログラミング
第1回:DOMの基本 「入門編」
(株)日本ユニテック
竹内 理


目次<全12ページ>

        1.はじめる前に
8.    4.STEP3:ノードの子要素リストを取得する-NodeListオブジェクトの使用
    おわりに


DOMのオブジェクトに触ってみよう

4. STEP3:ノードの子要素リストを取得する-NodeListオブジェクトの使用

ルートノード「books」の子要素「book」には「title」「publish_yeaer」「author」の3つの子要素があります。次のステップとして「book」の子要素リストの中から3つ目の「author」を取得してみましょう。このSTEPではノードのリストを表すNodeListオブジェクトが出てきます。NodeListクラスの詳細については別表4を参照してください。

まず、次のimport文を追加してください。

import org.w3c.dom.NodeList;

次にリスト4の続きに以下のコードを追加してください。

Element bkEl = (Element)rootEl.getFirstChild();//(9)ルートノードの子供を取得
NodeList childList = bkEl.getChildNodes();//(10)bkElの子供のリストを取得
Element atEl = (Element)childList.item(2);//(11)子供のリストの3番目の要素を取得
System.out.println("bookの3番目の子要素の名前は:" + atEl.getNodeName());//3番目の要素の名前を出力

リスト5.子要素のリストを取得するプログラムを追加

最初にルートノード「books」の子要素「book」を取得します。(9)では「books」(rootEl)の子要素(つまり「book」)を取得するためにNodeクラスのgetFirstChild()メソッドを使用しています。これはあるノードの子ノードの最初のものを返すメソッドです。返り値はNodeオブジェクトですからElement型にキャストしましょう。ここで生成されるElementクラスのインスタンスbkElは要素「book」を表します。(10)ではNodeクラスのgetChileNodes()メソッドを使用して「book」の子要素のリストを取得しています。NodeListオブジェクトはNodeの順次リストです。NodeListはそのリストのNodeの数を取得するgetLength()と任意の位置のNodeを取得するitem()の二つのメソッドを持っています。(11)ではitem()メソッドを使用して「book」の子の3番目の要素「author」を取得しています。item()メソッドは1番目のNodeを取得する際には引数に0を渡すので、3番目を取得する場合は引数に2をセットします。

もちろん2番目の要素を取得するなら

childList.item(1);      //2番目の要素を取得する場合

と記述します。

atElは「author」を表すElementオブジェクトです。item()メソッドは返り値としてNodeオブジェクトを返すのでElement型にキャストします。

STEP3の実行結果を以下に示します。

ルートノードの種類は:1
ルートノードの名前は:books
bookの3番目の子要素の名前は:author ←「author」要素の情報が帰ってきます

リスト6.STEP3の実行結果


関連サービス

IT技術およびIT製品の可用性調査・検証業務





ページトップへ戻る