2001年8月26日(日)更新 |
■それぞれのノードに属性をつけたXMLドキュメント
たけち: 今回は、各ノードの属性を調べるインターフェイスを中心にお話しようね。 さらら: は〜い。 たけち: その前に、今回使うXMLドキュメントを載せておこうね。前回のXMLテキストに属性を追加しているよ。最初にリストを見てみよう。 |
XMLドキュメントサンプル poems-2.xml
<?xml version="1.0" encoding="Shift_JIS"?> |
さらら: poemに属性no(歌番号)とpoet(作者)が追加されているわね。 たけち: 簡単だね。じゃあ、このサンプルXMLドキュメントがDOMではどうツリー構造として表現されるかを次の図に描いておくね。 |
さらら: あっ、分かるわ!! たけち: じゃあ、このサンプルXMLドキュメントの属性をどう扱うのかをお話しようね。 |
■属性のテキストをひろう
さらら: 子ノードのテキストをひろう(取ってくる)のは前回もやったわね。 たけち: 子ノードのテキストをひろうのと似たようなものだよ。次に載せるね。それぞれ該当のDOMインターフェイス名を載せておくね。 |
|
さらら: 子ノードのときは、"childNodes"だったのが、"attributes"になっているのね。 たけち: そうそう。もう図で説明しなくてもわかるよね。 さらら: うっ、うん。。。。。 (^ ^; たけち: じゃあ、おさらいのつもりで簡単に説明しておこうね。 |
■ノードに属性があるかどうかを調べる: hasAttributes
たけち: hasAttributesは、ノードに属性があるかどうかを調べるものなんだね。 さらら: あっ、属性があれば" true "、属性がなければ"false"になるのよね。そうでしょ?! たけち: そうそう。いいよね。あっ、そうだ、今回のサンプルではこのhasAttributesは使わないからね。 さらら: えっ、どうして?? たけち: hasAttributesはmsxmlではサポートされていないんだ。 さらら: そうなんだぁ・・・・・ |
■ノードの属性の数を調べる: length
たけち: つぎは、ノードの属性の数を調べるlengthだ。ここでは、属性の数を調べるから、属性を示すattributesとドット(.)でつないだattributes.lengthを使うよ。 さらら: あっ、そうなのね。。 |
■属性の値(テキスト)をひろう: attributes.item(int index).text
たけち: 最後は、属性の値(テキスト)を調べるattributes.item(int index).textだ。 さらら: あら、子ノードのテキストをとってくるのとほとんど同じね。 たけち: そうそう。もういいよね。
さらら: えぇ。わかるわ。 たけち: これも、念のために図で簡単に説明しておくね。 |
■JavaScriptサンプルリストと表示結果
さらら: だいたい分かったわ。じゃあ、ねっ! (^ ^* たけち: そうだね。じゃあ、今回のJavaScriptを含んだHTMLファイルの内容を次に載せようね。 さらら: えぇ、早く見てみたいわ!! |
<html> |
さらら: よく見ると「ルートノードの属性(volume)を取得」のところは前回もやっていたのね。気が付かなかったわ。 たけち: でも、これでよく分かったよね。じゃあ、このHTMLテキストをいつものようにファイルにしておくからクリックしてみて。 |
さらら: 少しずつなら分かっていけそう・・・ たけち: あわてずゆっくりやっていこうね。じゃあ、今回はここまで。おつかれさま。つぎも「属性」が出てくるかもね。 さらら: あっ、そうなの。たのしみだわ。。。 (^ ^* →次は次のノードを見る(nextSibling)他です。 (^ ^; |