Domino 9 und frühere Versionen > ND8: Entwicklung

Import XML mit NotesDOMParser class

(1/3) > >>

manderson:
Guten Morgen!

nach dem ich jetzt xml exportieren kann, will ich auch ein Import einbauen. Habe bereits herausgefunden dass dies wohl mit der NotesDOMParser class machbar ist. Ich habe zum Einstieg ins Thema das Beispiel von IBM verwendet:

 http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.designer.domino.main.doc%2FH_EXAMPLES_NOTESDOMPARSER_CLASS_EX.html

Doch wenn ich das Beispiel ausführe enthält die erstellte Datei folgenden Text:

--- Zitat ---DOM Parser Report - Walk Tree agent
errh: 4602:  DOM parser operation failed
--- Ende Zitat ---

Leider werde ich nicht daraus schlau ob meine XML Datei nicht ordnungsgemäß Strukturiert ist (was aber eigentlich sein müsste) oder der Fehler wo anders liegt.  ???

Kann mir jemand dazu was sagen?

manderson:
Okay, mein Fehler ein kleiner Fehler (Groß/Kleinschreibung) in der xml war doch der Ausschlaggeber *ups*

flaite:
Du kannst selbsterstellte xml-Dokumente in z.B. das hier reinwerfen zum Testen.
http://www.w3schools.com/xml/xml_validator.asp
Wir sprechen hier über das Feld über dem "validate" Knopf.
Gibt auch offenbar aussagekräftigere Fehlermeldung als Notes.

manderson:
Danke habs mit den validator von w3 gemerkt - http://validator.w3.org/

Lese gerade dieses Thema (http://atnotes.de/index.php/topic,45337.0.html) und wenn ich es richtig verstehe kann ich diesen Block in das Beispiel von IBM einfügen um ein neues Dokument anzulegen und auch die Nodes in die Dokumente einzuschreiben? 


--- Code: ---Case DOMNODETYPE_ELEMENT_NODE:   
         
Dim doc As NotesDocument
Dim session As NotesSession
Dim db As NotesDatabase
Set session = New NotesSession   
Set db = session.CurrentDatabase

If node.nodename = "machineID" Then
 Set doc = db.CreateDocument
 doc.form = "all"
End If
--- Ende Code ---

Doch irgendwie kommt dabei nicht herraus wenn ich dies in den walkTree abschnitt setze ...

manderson:
Sieht jemand den fehler  ???


--- Code: ---   Case DOMNODETYPE_ELEMENT_NODE:        ' Most nodes are Elements
      domParser.Output("Element node: "+node.NodeName )
      Set elt = node
     
    Dim doc As NotesDocument
    Dim session As NotesSession
    Dim db As NotesDatabase
    Set session = New NotesSession   
    Set db = session.CurrentDatabase
   
    If node.nodename = "machineID" Then
      Set doc = db.CreateDocument     
      doc.form = "form_machine"
      doc.machineId = Node.Firstchild.Nodevalue
      Call doc.Save( True, True )
    End if
           
    If node.nodename = "machineManufacturer" Then
      doc.form = "form_machine"  
      doc.machineManufacturer = Node.Firstchild.Nodevalue
      Call doc.Save( True, True )      
      End If 
--- Ende Code ---

Es wird ein neus Dokument und der Eintrag für machineID erstellt, aber machineManufacturer bleibt leer...

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln