Autor Thema: NotesDOMParser.process failed  (Gelesen 2344 mal)

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
NotesDOMParser.process failed
« am: 11.05.06 - 15:10:18 »
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

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.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: NotesDOMParser.process failed
« Antwort #1 am: 11.05.06 - 15:26:20 »
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>

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...???? >:(
« Letzte Änderung: 11.05.06 - 15:32:54 von Gandhi »
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: NotesDOMParser.process failed
« Antwort #2 am: 11.05.06 - 15:28:45 »
Ausserdem steht im XML Quellfile nicht domino_6_5_4.dt, sondern domino_6_5_4.dtd - wie es ja auch richtig wäre...
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: NotesDOMParser.process failed
« Antwort #3 am: 11.05.06 - 15:31:22 »
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'>....
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: NotesDOMParser.process failed
« Antwort #4 am: 11.05.06 - 16:27:30 »
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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: NotesDOMParser.process failed
« Antwort #5 am: 12.05.06 - 13:24:38 »
Damit ich jetzt nicht ganz so blöd dastehe : Auszug aus der NotesDesigner Help:
Zitat
Processor   Possible input objects   Possible output objects
NotesDXLExporter    NotesDatabase
   NotesDocument
   NotesDocumentCollection
   NotesNoteCollection   NotesStream
      NotesRichTextItem
      NotesDXLImporter
      NotesDOMParser
      NotesSAXParser
      NotesXSLTransformer
NotesDXLImporter    String
   NotesStream
   NotesRichTextItem
   NotesDXLExporter
   NotesDOMParser
   NotesSAXParser
   NotesXSLTransformer   NotesDatabase
NotesDOMParser
NotesSAXParser
NotesXSLTransformer   String
   NotesStream
   NotesRichTextItem
   NotesDXLExporter
   NotesDOMParser
   NotesSAXParser
   NotesXSLTransformer   NotesStream
      NotesRichTextItem
      NotesDXLImporter
      NotesDOMParser
      NotesSAXParser
      NotesXSLTransformer
Nicht, dass ich wirklich glauben würde, was da steht....
Dieses Dokument war auch eher versteckt (über XML Beispiele, Pipelining,...)
Aber ich habe die Vermutung (siehe auch den Log Eintrag meines Parsers), dass bei IBM Versucht wurde, ihm auch die Eingabemöglichkeit eines Strings mitzugeben und diese dann nicht richtig umgesetzt wurde und jetzt vom Lotus Quality Engineering 'bearbeitet' wird....
Anyway - Vielen Dank für Deine Hilfe - so werde ich es jetzt auch versuchen.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: NotesDOMParser.process failed
« Antwort #6 am: 12.05.06 - 13:50:14 »
Neuer Code, alter Fehler... ???
Code
Function getadded(doc As notesdocument) As String
	Dim dom As NotesDOMParser
	Dim dxl As String
	Dim exporter As NotesDXLExporter
	Set exporter=session.CreateDXLExporter(Doc)
	
	Set dom=session.CreateDOMParser(exporter)
On Event PostDOMParse From dom Call domserialize

	exporter.process
	

 :-:
« Letzte Änderung: 12.05.06 - 14:04:03 von Gandhi »
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz