NotesDocument 对象永远不能独立存在。它总是需要一个父数据库。无论您如何获得 NotesDocument 对象,这都是正确的。在您的特殊情况下,您需要一个用于将 XML 导入到的“哑”容器 nsf。导入后,您可以访问 NotesDocument。
您需要使用其universalid 查找文档。这个universalid可以在XML中作为“unid”找到——nodeinfo-节点的属性:
<document xmlns='http://www.lotus.com/dxl' version='9.0' maintenanceversion='1.4'
replicaid='C1257C270049C111' form='Offer'>
<noteinfo noteid='188a6' unid='FE4CB54C2D7C9ABCC1257E620027FCE4' sequence='3'>
正如 Stan 在评论中所说,这可能会或可能不会起作用。如果具有该 UNID 的文档已经存在和/或相应地设置了导入选项,则导入的文档可以获得不同的 Universalid。更好的用户 NotesDXLExporter.GetFirstImportedNoteID 来获取文档。
你甚至可以从一个 xml-struct 中导入整个数据库,但是对于这样一个简单的任务来说,这可能是一个很大的开销,当然这取决于你的需要。
作为“hack”或“解决方法”,您可以将此文档导入数据库,该数据库始终存在于任何 Lotus Notes 客户端上,例如 bookmark.nsf 或 names.nsf,但我不建议这样做。