首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取RichText字段?

如何读取RichText字段?
EN

Stack Overflow用户
提问于 2013-02-25 21:31:11
回答 1查看 3.5K关注 0票数 1

我有一个代理,它应该将Notes DB显示为XML。我成功地检索了除RichText字段之外的所有字段。这是一个代码片段:

代码语言:javascript
复制
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的新手,我不知道如何做到这一点。谢谢你们。

编辑:事实证明西蒙的答案是正确的。据我所知,如果我删除下面的打印代码,就会出现编码问题:

代码语言:javascript
复制
Print |Content-Type:text/xml| & Chr$(13)

一切都很好。我想我需要在头文件中定义编码...

编辑:我现在改用这个打印:

代码语言:javascript
复制
Print "<text><![CDATA[" & rtitem.getUnformattedText() & "]]></text>"

但是,当我从浏览器调用代理时,它仍然在打印时中断,因为它忽略了CDATA。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-25 21:42:28

不要使用点符号。要获得Richtext字段,您需要使用getFirstItem()方法调用并将其链接到一个NotesRichTextItem对象。之后,您应该能够使用getUnformattedText()方法将其转换为文本。

代码语言:javascript
复制
Dim rtitem As NotesRichTextItem
...
rtitem = doc.getFirstItem("text")

Print "<text>" & rtitem.getUnformattedText() & "</text>" 

当然,您可能需要解析该文本以防止XML中出现非标准字符,或者将其包装在CDATA块中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15068160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档