A
Mal ein paar Worte zu Deinen Versuchen. Abgesehen davon, dass ich Dir nur nochmal raten kann, Dir die Eigenschaften der verschiedenen
XML-Klassen anzuschauen, fällt mir bei Deinem Code folgendes auf:
Janka schrieb:
1. Versuch:
_di_IXMLNode Person1 = XMLDocument1->DocumentElement->ChildNodes[0];
AnsiString Name = Person1->ChildNodes->Nodes["name"]->Text;
Fehler:
[C++ Fehler] Entwurf1_U.cpp(38): E2034 Konvertierung von 'IXMLNodeList' nach '_di_IXMLNode' nicht möglich
Du hast es ja schon selbst gesehen, dass ChildNodes vom Typ IXMLNodeList ist und nicht vom Typ IXMLNode (das _di_ steht für
"Delphi Interface").
Janka schrieb:
2. Versuch:
_di_IXMLNode Person1 = XMLDocument1->DocumentElement->ChildNodes;
AnsiString Name = Person1->ChildNodes->Nodes["name"]->Text;
Fehler: Jetzt kommt über den Debugger eine Exception der Klasse EAcessViolation, Meldung: Zugriffsverletzung bei Adresse....
Woran kann das wohl liegen? Du greifst auf die Kindknoten des Dokumentknotens zu, d.h. auf die "person"-Knoten. Da sollte es klar
sein, dass ein Zugriff über den Namen "name" fehlschlägt.
Janka schrieb:
3. Versuch:
_di_IXMLNode Person1 = XMLDocument1->DocumentElement->ChildNodes;
TreeView1->Items->Add(TreeView1->TopItem,Person1->ChildNodes->Nodes["name"]);
Fehler: [C++ Fehler] Entwurf1_U.cpp(40): E2034 Konvertierung von '_di_IXMLNode' nach 'AnsiString' nicht möglich
Die Fehlermeldung sagt eigentlich schon alles. Schau Dir mal die Eigenschaft Nodes von IXMLNode an, dann wirst Du's auch sehen.
Um Fehlermeldungen aus dem zweiten Versuch zu vermeiden, könntest Du noch die automatische Knotengenerierung anschalten, über die
Eigenschaft Options der Klasse IXMLDocument.
Die verschiedenen Klassen und deren Verwendung sind in der BCB-Hilfe recht gut und ausführlich beschrieben. Schau mal unter
"Verteilte Anwendungen entwickeln"|"Mit XML-Dokumenten arbeiten". Dort findest Du sicherlich alle Grundlagen, die Du für einen
Start brauchst.
Gruß,
Alexander