今回は NotesDOMElementNode が持つ属性の操作についてまとめます。
属性とは
下図は、#49)ノード操作 ② - ノード間の関係と取得方法 に掲載した DXL のノードを分類した図ですが、ピンクの下線が属性です。
属性は、NotesDOMElementNode の < > 内に定義され、属性名='値' で構成されます。値は、id='1' や def="1" のような数値でも、color='#ffe118' のような 16 進数でも、name='Body' のような文字列と同じ表現になります。つまり、属性の値の型には文字列しかないということですね。
また、font ノードのように複数の属性を持つこともあれば、richtext や run ノードのように属性を持たないこともあります。
属性の操作
属性を管理する NotesDOMAttributeNode というクラスが定義されています。しかし、属性は NotesDOMElementNode のメソッドから操作ができます。よって、NotesDOMAttributeNode クラスは普段使いでは使用しません。
NotesDOMElementNode のメソッド | 機能 |
GetAttribute | 属性の取得 |
SetAttribute | 属性の設定 |
RemoveAttribute | 属性の削除 |
属性の取得
属性の取得は、GetAttribute メソッドで属性名を引数に指定するだけです。戻り値はその属性の値が文字列で返されます。
attr$ = notesDOMElementNode .GetAttribute( attributeName ) |
なお、引数で指定した名前の属性が存在しない場合は null (空の文字列)が返されます。
属性の設定
属性の設定には、SetAttribute メソッドを使用します。引数は、属性の名称と値で、それぞれ文字列で指定します。
Call notesDOMElementNode .SetAttribute( attributeName , attributeValue ) |
属性がない場合には、新規で属性が追加され値がセットされます。すでに同名の属性が存在する場合には、値が上書きされます。
なお、値に null(空の文字列)を指定すると、属性が削除されるのではなく、値が空の属性が作成されます。
Call denItem.SetAttribute("name", "") |
属性の削除
属性を削除するには、RemoveAttribute メソッドを使用します。引数は削除したい属性名です。
Call notesDOMElementNode.RemoveAttribute( attributeName ) |
存在しない属性名を指定した場合、エラーは発生せず、事実上何も実行されません。削除前の存在チェックは不要ですので、使いやすいメソッドですね。
まとめ
今回は NotesDOMElementNode の属性操作に特化してまとめました。DXL のコーディングはなかなかクセがあって思い通りいかないと感じているのですが、属性操作に限って言えば、非常にシンプルで直感的なわかりやすい機能になっています。
DXL Step-by-Step | 次回 |
0 件のコメント:
コメントを投稿