当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2008年9月18日木曜日

選択した全Notes文書をXMLに変換する

DXLについて、Notes文書をXMLに変換するの記事で書いたが、これのサンプルは、ビューで選択した文書の最初の文書だけをXMLにするものだった。つまり、複数選択していても有効ではなかったのだ。
今回は、複数文書が選択されていても、正しくXMLに変換するというプログラムに書き直してみた。

ポイントとなるのは、サンプルの赤文字の部分。XMLに書き出す際のInputをどうするのか?というところである。
これをdocs(NotesDocumentCollectionクラス)にするだけで良かったのだ。

このDXLのすごいところは、Notes文書中にある添付ファイルやホットスポットボタンも変換してくれるところだ。
XMLデータをNotesDBに登録するで紹介したサンプルで、NotesDBに取り込んでみると、はっきりと分かるので、やってみてほしい。

-------------------------------------------------------------------------------------------------
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim docs As NotesDocumentCollection
Dim doc As NotesDocument

Dim ndxl As NotesDXLExporter
Dim stream As NotesStream
Dim ret As String

Dim fn As Integer

Set db = session.CurrentDatabase
Set docs = db.UnprocessedDocuments
Set doc = docs.GetFirstDocument

'出力先ファイルオープン
fn = Freefile()
Open "c:\notesxml.xml" For Output As #fn Charset = "UTF-8"

Set ndxl = session.CreateDXLExporter( docs )
Set stream = session.CreateStream
Call ndxl.SetOutput( stream )

'XMLへエクスポート
ret = ndxl.Export( docs )
Print #fn, ret

'ファイルクローズ
Close #fn
End Sub


Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: