2025/02/25

DXL Step-by-Step:#48)ノード操作 ① - DXL 操作で必須のクラス

先日、DominoHub の今年のイベントが告知されました。

DominoHub は Notes/Domino の日本最大のコミュニティイベントで、今年も昨年同様、6 月に東京で開催予定となりました。詳細は以下のリンクを確認ください。

DominoHub 2025 Tokyo Notes/Domino日本最大のコミュニティイベント

日程やセッションの内容などについては準備ができ次第更新されます。お楽しみに!


昨年の DominoHub 2024 では、『 ”DXL” でリッチテキスト縦横無尽』と題して、DXL の基礎からテクニックまでを総合的に紹介させていただきました。今回からしばらくの間は、”ノード操作” を主題に、このセッションの中から DXL のノードを自由自在に操作するテクニックを再編集してご紹介します。


DXL で利用するクラス

まずは DXL 操作で利用するノーツクラスのおさらいです。

DXL に関連するクラスには、NotesDXL で始まるクラスと NotesDOM の 2 種類があります(下図の青枠)。NotesDXL??? クラスは DXL の入出力で利用し、文書 ⇔ DXL の変換を行います。そして、NotesDOM??? クラスがノード操作を行うクラスです。DOM は Domino Object Model の略と認識すれは理解しやすいですね。


ノード操作で必須のクラス

NotesDOM??? クラスが今回のテーマとなるのですが、20 近いクラスが定義されていて、複雑そうです(紫枠)。ただ、一般的な DXL 操作では、これらすべてのクラスを使用しません。私の経験では赤線で示した 5 クラスを理解すれば、DXL を自由自在に操作できます。


文書の操作と必須クラス

文書の操作には、新規作成と編集があります。それぞれの操作で利用する必須クラスをさらに分類することができます。

新規 編集 クラス 役割
NotesDOMDocumentNode 文書全体のノード
ノードの新規作成機能を持つ
NotesDOMElementNode ノード名や属性を持つ一般的なノード
NotesDOMTextNode 文書内のテキスト(文字列)
NotesDOMNodeList ノード検索の戻り値で使用
複数のノードをコレクションのように保持
NotesDOMNode NotesDOMNodeList から取得したノード
NotesDOMElementNode や NotesDOMTextNode などさまざまなノードオブジェクトを取りうる

文書の新規作成では、各ノードを DXL 構造に従って構築するだけなので、NotesDOMDocumentNode でノードを作成し、適切な場所に配置する作業の繰り返しとなります。文書の編集では、編集する個所を見つける必要があります。ノード検索 GetElementsByTagName メソッドを使用するので NotesDOMNodeList と NotesDOMNode も利用することになります。


前回 DXL Step-by-Step 次回


0 件のコメント:

コメントを投稿