Personal tools
You are here: Home サポート PASSCELL Personal 入門用マニュアル 4. 計算や処理を行わせる 4. 計算や処理を行わせる: 7) 高度なスクリプト記述 (2) 修飾子 "node." + setnode() 関数:下位ノード参照
Document Actions

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.jpg

(図4.7.c-1) トップノード



図4.7.c-2.jpg

(図4.7.c-2) 2番目のノード(下位ページ有り)


図4.7.c-3.jpg

(図4.7.c-3) 下位ページのノード(使うエレメント)


図4.7.c-4.jpg

(図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プロパティ+".":複数の親ノードの識別]へ進む →

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: