0

我希望将此代码从 Lotus Script 更改为 SSJS。

Query = "test"
Maxdocs = 10
Sortoption = 32
Otheroptions = 8192
Start = 1
Count = 30
Entryform = "ResultEntry"
Set RetDoc = curDB.Ftdomainsearch(Query, Maxdocs, Sortoption,Otheroptions,Start,Count,Entryform)

'domino Xml
Set ndxl = ss.CreateDXLExporter(Retdoc)
Set stream = ss.CreateStream
Call ndxl.SetOutput(stream)
ret = ndxl.Export(Retdoc)
Set domParser=ss.CreateDOMParser(ret, stream)
domParser.Process

'doclink
Set rootElement = domParser.Document.DocumentElement

Set docList = rootElement.GetElementsByTagName ("doclink")

=================================

我自己创建了这个 ssjs 代码。但是发生了错误。

var Query = "a";
var Maxdocs = 10;
var Sortoption = 32;
var Otheroptions = 8192;
var Start = 1;
var Count = 30;
var Entryform = "ResultEntry";
var RetDoc:NotesDocument = database.FTDomainSearch(Query, Maxdocs, Sortoption,Otheroptions,Start,Count,Entryform);

var stream:NotesStream = session.createStream();
var ndxl:NotesDxlExporter = session.createDxlExporter();

var ret:string = ndxl.exportDxl(RetDoc);
var parser = new DOMParser();
var doc = parser.parseFromString(ret, "application/xml");

var rootElement = doc.DocumentElement;
var docList = rootElement.GetElementsByTagName ("doclink");

====================================

该错误如下所述。

" DOMParseris not found" 一句错误 var parser = new DOMParser();

请告诉我 ssjs 中的正确代码。

4

1 回答 1

1

我不确定 DOMParser 应该是哪种对象;两个选项:

a) 你希望给我们一个 java 类,可能是 Oracle 的版本,或者来自 Apache 的 Xerces-J API 的那个。在这两种情况下(或其他情况),您都可以尝试通过传递完整的包名来调用类构造函数,如var parser=new oracle.xml.parser.v2.DOMParser; 请注意,这只是一个示例;两个 DOMParser 类都没有parseFromString()方法。

b)更有可能您正在尝试使用客户端javascriptDOMParser对象;据我所知,这个对象在 Domino 的 SSJS 实现中不可用,至少我找不到它的任何痕迹。

底线:您将不得不寻找一种不同的方式,最有可能使用适当的 java 类;保罗卡尔霍恩的例子(在弗兰克范德林登的评论中链接)可能会有所帮助。

于 2016-04-27T11:23:16.370 回答