使って理解するDOMプログラミング
第1回:DOMの基本 「入門編」
(株)日本ユニテック
竹内 理
目次<全12ページ>
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製品の可用性調査・検証業務
|