Zitat von
Mr.AndersoN:
Mangels aktueller OpenXML Tutorials erschließt sich mir leider nicht, wie man mit selbigen Etappenweise die Struktur eines
XML-Dokuments einließt.
Ich habe OpenXML noch nie benutzt und auch noch nie in die Dokumentation geschaut (werde ich wohl auch nie, eher erweitere ich meine Lib). Aber trotzdem bin ich mir ziemlich sicher, dass die einzelnen Funktionen Instanzen zurück liefern. Diese können auch nil sein. Du müsstest dich einfach nur (z.B. einfachst ohne Hilfe im Code-Insight Fenster) kundig machen, welchen Typ/Klasse dir geliefert wird. Dann kannst du oben im Var-Abschnitt den Typ ergänzen und folgendes schreiben:
Delphi-Quellcode:
Var
lTagList: ???; // in Code-Insight sollte stehen, welcher Typ von GetElementsByTagName() liefert - diesen dort eintragen
lNode: ???; // gleiches bei der Methode Item() von lTagList
...
Begin
lTagList := Doc.GetElementsByTagName('leeres_xml_element');
If Assigned(lTagList) And ( lTagList.Count > 0 ) Then
Begin
lNode := lTagList.Item(0);
If ( lNode.ChildNodes.Count > 0 ) Then
ShowMessage(lNode.ChildNodes.Item(0).NodeValue)
Else
ShowMessage('keine Unterknoten am Tag "leeres_xml_element" vorhanden!');
End
Else
ShowMessage('kein Element namens "leeres_xml_element" gefunden!');
End;
Beide Fehlermeldungen/Hinweise würden dir Fehler in der Struktur oder dem Pfad des Zugriffs aufzeigen.
XML ist aber gerade auch dazu gedacht, unnötige Informationen bei Bedarf wegfallen zu lassen, daher ist es Sache von dir/deinem Code das entsprechend zu handlen. Also benötigte Knoten die fehlen entsprechend anzumeckern und bei optionalen Tags entsprechend ein Defaulthandling ausführen oder einfach ignorieren.