Domino 9 und frühere Versionen > ND6: Entwicklung
NotesDOMParser.process failed
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