У меня есть агент, который должен отображать базу данных Notes в формате 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 вместо doc.text(0), он записывает только первые два слова всего текста. Я полагаю, что мне нужно прокрутить весь текст, но, поскольку я новичок в Lotus Script, я понятия не имею, как это сделать. Спасибо вам, ребята.
РЕДАКТИРОВАТЬ: оказалось, что ответ Саймона правильный. Насколько я могу судить, проблема связана с кодировкой, если я удалю следующую печать:
Print |Content-Type:text/xml| & Chr$(13)
Все работает нормально. Думаю, мне нужно определить кодировку в заголовке...
РЕДАКТИРОВАТЬ: теперь я использую этот Print:
Print "<text><![CDATA[" & rtitem.getUnformattedText() & "]]></text>"
Однако, когда я вызываю агента из браузера, он все еще ломается при печати, поскольку игнорирует CDATA.