Domino 9 und frühere Versionen > ND6: Entwicklung

NotesDOMParser.process failed

(1/2) > >>

Gandhi:

--- Code: ---Function getadded(doc As notesdocument) As String

                Dim session as new notessession
Dim dxl As String
Dim exporter As NotesDXLExporter
Set exporter=session.CreateDXLExporter(Doc)
dxl=exporter.export


Dim dom As NotesDOMParser
Set dom=session.CreateDOMParser(dxl)
dom.process
--- Ende Code ---

doc ist existent und somit enthält dxl auch gültige DXL.
Dennoch scheitert das ganze mit der o.g. lapidaren Fehlermeldung.
In meiner Noteshilfe steht, dass der NotesDOMParser Strings als Input akzeptieren müsste.
Ich vermute einen groben, vermutlich gar dummen Denkfehler und stehe vollkommen auf dem Schlauch und auch gefühlt endloses versuchen und suchen hat bisher nichts gebracht. Hilfe.

Gandhi:
Ach ja, das Ding hat ja ein Log:

--- Code: ---<?xml version='1.0'?>
<DOMParserLog>
<fatalerror source='inpu' line='2' column='57'>An exception occurred! Type:XMLPlatformException, Message:Could not open file: xmlschemas\domino_6_5_4.dt</fatalerror>
<error>DOM parser operation failed</error>
</DOMParserLog>
--- Ende Code ---

Und nun die Preisfrage:
Wie kann es sein, dass Notes eine dtd, die es zuvor zum Erstellen benutzt hat, beim Lesen nicht mehr öffnen kann...???? >:(

Gandhi:
Ausserdem steht im XML Quellfile nicht domino_6_5_4.dt, sondern domino_6_5_4.dtd - wie es ja auch richtig wäre...

Gandhi:
Und einen hab ich noch: Zeile 2 hat überhaupt nur 55 Zeichen...

Hier der Anfang des DXL:

--- Code: ---<?xml version='1.0'?>
<!DOCTYPE document SYSTEM 'xmlschemas/domino_6_5_4.dtd'>
<document xmlns='http://www.lotus.com/dxl' version='6.5' maintenanceversion='4.0'
 replicaid='C1256F690050F2A6' form='Kontakt'>
<noteinfo noteid='a626' unid='47D4DA872DCD06CBC12571010060CAE5' sequence='107'>....
--- Ende Code ---

eknori:
Du hast da einen kleinen Denkfehler: DOMParser verarbeitet zwar Strings, kann aber keine Quelle vom Typ STRING verarbeiten.

Lt. Designer Hilfe sind das

NotesDOMParser (pipelines from a NotesDOMParser object)
NotesDXLExporter (pipelines from a NotesDXLExporter object)
NotesRichTextItem
NotesSAXParser (pipelines from a NotesSAXParser object)
NotesStream
NotesXSLTransformer (pipelines from a NotesXSLTransformer object)

Du musst also die Ausgabe des exporters zunächst in einen Stream oder in ein RTFeld umleiten und diesen output als Input des DomParser verwenden ( mit SetInput methode des Parsers )

Oder du machst es über eine pipeline; der Exporter übergibt direkt an den Parser. Dann musst du aber deinen Code anders aufbauen.

Zum pipeline findest du hier ein Beispiel

http://atnotes.de/index.php?topic=30227.msg190852#msg190852

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln