選択した全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 カスタマイズとセキュリティ強化 - 株式会社エフ

コメント