Notes DB を XML として表示するエージェントがあります。RichText 以外のすべてのフィールドを正常に取得しました。これはコード スニペットです。
Set session = New NotesSession
Set doc = session.DocumentContext
Set db = Session.CurrentDatabase
Set view = db.getview("myView")
Set doc = view.GetFirstDocument()
While Not(doc Is Nothing)
Print "<job>"
Print "<id>" & doc.id(0) & "</id>" ' Works fine since ID is a normal field
Print "<text>" & doc.text(0) & "</text>" ' Does not work at all
Print "</job>"
Set doc = view.GetNextDocument(doc)
Wend
doc.text(0) の代わりに doc.text を使用すると、テキスト全体の最初の 2 語だけが書き込まれます。テキスト全体に目を通す必要があると思いますが、私はロータス スクリプトを初めて使用するので、その方法がわかりません。君たちありがとう。
編集:サイモンの答えが正しいことが判明しました。次の Print を削除すると、私が知る限り、問題はエンコーディングに関するものです。
Print |Content-Type:text/xml| & Chr$(13)
すべて正常に動作します。ヘッダーでエンコーディングを定義する必要があると思います...
編集:代わりにこの Print を使用するようになりました:
Print "<text><![CDATA[" & rtitem.getUnformattedText() & "]]></text>"
ただし、ブラウザからエージェントを呼び出すと、CDATA を無視しているため、その印刷でまだ壊れています。