使って理解するDOMプログラミング
第1回:DOMの基本 「入門編」
(株)日本ユニテック
竹内 理
目次<全12ページ>
7. 3.STEP2:ルートノードを取得する-Elementオブジェクトの使用
|
DOMのオブジェクトに触ってみよう
3.STEP2:ルートノードを取得する-Elementオブジェクトの使用
では次にこのXML文書のルートノードを取得して、そのノードの名前(プロパティnodeName)と値(nodeValue)を調べてみましょう。このSTEPでは「Document」に加えて「Element」オブジェクトが出てきます。「Element」は文書要素を表すオブジェクトです。Elementクラスの詳細については別表3を見てください。
まず次のimport文を追加します。
import org.w3c.dom.Element;
|
次にリスト2の Document xdoc = xml.getDocument(); //(5)getDocumentメソッドでドキュメントオブジェクトを生成する。 の下に次のコードを追加してください。
Element rootEl = xdoc.getDocumentElement();
//(6)ルートのエレメント
System.out.println("ルートノードの種類は:"
+ rootEl.getNodeType());//(7)ルートノードの種類を取得
System.out.println("ルートノードの名前は:"
+ rootEl.getNodeName());//(8)ルートノードの値を取得
|
リスト3. ルートの要素を取得するプログラムを追加する
(6)ではDocumentクラスのメソッドgetDocumentElement()を使うことによってルートの要素rootElを生成しています。rootElは要素を表すElementクラスのインスタンスです。(7)ではNodeクラスのgetNodeType()メソッドを使ってルートノードの種類を取得します。(8)では同じくNodeクラスのgetNodeName()メソッドを使ってルートノードの名前を取得します。
実行結果は以下のようになります。
ルートノードの種類は:1 ←nodeTypeで「1」は文書要素を表します。
ルートノードの名前は:books
|
リスト4.STEP2の実行結果
NodeクラスのプロパティnodeType、nodeValue、nodeNameの値はNodeクラスから派生するクラスそれぞれに違う値になります。次にノードの種類ごとの3つのプロパティの値を示します。
ノードの種類 |
nodeTypeプロパティ |
nodeNameプロパティ |
nodeValueプロパティ |
ELEMENT |
1 |
タグの名前 |
Null |
ATTRIBUTE |
2 |
属性名 |
属性値 |
TEXT |
3 |
#text |
テキスト部分 |
CDATA_SECTION |
4 |
#cdata_section |
CDATAセクションの内容 |
ENTITY_REFERENCE |
5 |
参照する実体名 |
Null |
ENTITY |
6 |
実体の名前 |
Null |
PROCESSING
_INSTRUCTION |
7 |
ターゲット |
ターゲットを除く内容全体 |
COMMENT |
8 |
#comment |
コメントの内容 |
DOCUMENT |
9 |
#document |
Null |
DOCUMENT_TYPE |
10 |
ドキュメントタイプ名 |
Null |
DOCUMENT_FRAGMENT |
11 |
#document_fragment |
Null |
NOTATION |
12 |
記法 |
Null |
関連サービス
IT技術およびIT製品の可用性調査・検証業務
|