4. 計算や処理を行わせる: 7) 高度なスクリプト記述 (2) 修飾子 "node." + setnode() 関数:下位ノード参照
← [4. 計算や処理を行わせる: 7) 高度なスクリプト記述 (1) 修飾子 "super.":親ノード参照]へ戻る | ↑
[目次]へ戻る | [4. 計算や処理を行わせる: 7) 高度なスクリプト記述 (3) 修飾子
ノードのNameプロパティ+".":複数の親ノードの識別]へ進む →
■このページで説明している内容
c) 下位ノード(子孫ノード、および下位ページにあるノード)のエレメントを指定する:"node." + setnode() 関数
c) 下位ノード(子孫ノード、および下位ページにあるノード)のエレメントを指定する:"node." + setnode() 関数
修飾子"super."は、親子関係にある親ノードのエレメントを参照することができました。
しかしこの方法は、親ノードにあるエレメントしか参照できないため、自ノードより下(つまり子孫ノードや下位ページにあるノード)の値を参照することができません。
このような場合、修飾子 "node."を使って、下位ノード(子孫ノード、および下位ページにあるノード)のエレメントを参照することができます。
実際の例を見てみましょう。
(図4.7.c-1) トップノード
(図4.7.c-2) 2番目のノード(下位ページ有り)
(図4.7.c-3) 下位ページのノード(使うエレメント)
(図4.7.c-4) 下位ページのノード(プロパティエレメント)
まず最初に理解しておく必要がある点として、修飾子"node."は、かならずsetnode()関数とペアで利用する必要があることです。
修飾子"node."は、直前にsetnode()関数で指定されたノードラベルを持つノードのエレメントを参照します。
つまり、
(1) setnode()関数でノードラベルを指定する
(2) "node."+(指定したノードのエレメント名)で、値が参照できる
という順序で利用します。
図4.7.c-2のスクリプトをご覧ください。
"森川三郎さんの算数は75点です。"と表示されているノードは、下位ページとそこに5つのノードを持っています。
この下位ノードの中から、親ノードで「氏名」エレメントに指定された名前を持つノードをsetnode()関数で選択しています。
この状態で、「森川三郎」ノードが選択し、修飾子"node."によって「算数」エレメントの値を取得しています。
"node."修飾子/setnode関数を利用する上で注意すべき点は、ノードラベルによって対象ノードを指定するので、下位ノードが複数あり、かつ同じラベル名を持つノードがある場合には、先に見つかったノードが参照対象となります。
どのノードが「先に見つかるか」は順不同ですので基本的には指定できません。
したがって、setnode()関数と修飾子"node."を使った下位ノード参照を行う場合には、下位ノードにはユニーク(一意)なラベル名をつけておく必要があります。
← [4. 計算や処理を行わせる: 7) 高度なスクリプト記述 (1) 修飾子 "super.":親ノード参照]へ戻る | ↑ [目次]へ戻る | [4. 計算や処理を行わせる: 7) 高度なスクリプト記述 (3) 修飾子 ノードのNameプロパティ+".":複数の親ノードの識別]へ進む →



