BEISPIEL
If xmlDoc.loadXML(mystr) Then ' erfolgreich geladen ...
MsgBox "ok"
Else ' Fehler beim Laden der Datei ...
MsgBox "Problem"
End If
XML-Fehlerprüfung/-Analyse
Sicher ist Ihnen beim Experimentieren mit den vorhergehenden Beispielen schon aufgefallen, dass im
Fehlerfall zwar die entsprechende Methode fehlschlägt, woran es gelegen hat, konnten Sie jedoch nicht fest-
stellen. Möchten Sie nun unterscheiden, ob es an einer fehlenden Datei bzw. fehlerhaften Pfadangaben liegt
oder an einem Fehler in den XML-Daten, bleibt Ihnen nichts anderes übrig, als sich etwas intensiver mit
der Fehler-Analyse mittels DOM zu beschäftigen.
Das parseError-Objekt
Nach einem aufgetretenen Fehler können Sie über das parseError-Objekt die Fehlerursache genauer spezifi-
zieren. Die folgende Tabelle listet Ihnen die einzelnen Eigenschaften des Objektes und deren Bedeutung auf:
Eigenschaft Beschreibung
errorCode Der Fehlercode
reason Eine verbale Beschreibung des Fehlers
line Zeilennummer, in der der Fehler aufgetreten ist
linePos Spaltennummer bzw. Zeichen, an dem der Fehler aufgetreten ist
srcText Die fehlerhafte Zeile als String
url Der URL des geladenen Dokuments
filePos Absolute Zeichenposition des Fehlers
Tabelle 12.5 Die parseError-Eigenschaften
Fehlerauswertung (im Dokument wurde absichtlich der Start-Tag falsch ausgeschrieben)
Dim xmlDoc As New DOMDocument30
If xmlDoc.Load("C:\test7.xml") Then ' erfolgreich geladen ...
MsgBox "Ok"
Else ' Fehler beim Laden der Datei ...
MsgBox "Fehlernummer : " & xmlDoc.parseError.errorCode & Chr(10) & _
"Fehlerursache : " & xmlDoc.parseError.reason & _
"Fehler in Zeile : " & xmlDoc.parseError.Line & Chr(10) & _
"Zeilentext : " & xmlDoc.parseError.srcText
End If
Das Resultat ist folgende Fehlermeldung, die wir Ihnen nicht vorenthalten wollen:
773
XML-Verarbeitung mit dem DOM
BEISPIEL
Kapitel 12: XML in Theorie und Praxis
Abbildung 12.24 Fehlermeldung
Die Fehlerursache im vorhergehenden Beispiel war ein simpler Schreibfehler. Was aber, wenn es sich um
ein ungültiges Dokument laut DTD handelt? Die Antwort findet sich in der Eigenschaft validateOnParse,
welche die Fehlerprüfung ein- bzw. ausschaltet (Default).
Auf der Buch-CD finden Sie ein fehlerhaftes XML-Dokument, bei dem ein Element (
Name
) zwar verwendet
wird, aber nicht in der DTD definiert ist.
Sub XML_Fehleranalyse()
Dim xmlDoc As New DOMDocument30
If MsgBox("Fehlerprüfung?", vbYesNo, "Frage") = vbYes Then
xmlDoc.validateOnParse = True
Else
xmlDoc.validateOnParse = False
End If
If xmlDoc.Load(CurrentProject.Path & "\fehler.xml") Then ' erfolgreich geladen ...
MsgBox "Ok"
Else ' Fehler beim Laden der Datei ...
MsgBox "Fehlernummer : " & xmlDoc.parseError.errorCode & Chr(10) & _
"Fehlerursache : " & xmlDoc.parseError.reason & _
"Fehler in Zeile : " & xmlDoc.parseError.Line & Chr(10) & _
"Zeilentext : " & xmlDoc.parseError.srcText
End If
End Sub
Nach dem Abfragedialogfeld, ob eine Fehlerprüfung durchzuführen ist oder nicht, wird Ihnen entweder ge-
meldet, das Dokument ist fehlerfrei, oder es erscheint das folgende Dialogfeld:
Abbildung 12.25 Fehlermeldung
774

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.