Problem mit Schließendem XML Tag beim Auslesen [gelöst]
-
Hallo C++ Forum,
Ich lese folgende XML Datei aus:
<?xml version="1.0" encoding="UTF-8"?> <Import> <Item> <eintrag> <Name>Mustermann</Name> <Strasse>Mustermannstr. 1</Strasse> <land>DE</land> <Plz>123456</Plz> <Ort>MusterOrt</Ort> <knotenpunkt/> </eintrag> </Item> </Import>
Dies gelingt mir mit folgendem C++ Code:
try { _di_IXMLDocument XML = LoadXMLDocument("C:\\test.xml"); _di_IXMLNodeList Zeile1 = XML->DocumentElement->ChildNodes->FindNode("Item")->ChildNodes; for (int Zeile1Nr = 0; Zeile1Nr < Zeile1->Count; Zeile1Nr++) { String Name1 = Zeile1->Get(Zeile1Nr)->GetNodeName(); ShowMessage(Name1); _di_IXMLNodeList Zeile2 = Zeile1->FindNode(Name1)->ChildNodes; for (int Zeile2Nr = 0; Zeile2Nr < Zeile2->Count; Zeile2Nr++) { String Name2 = Zeile2->Get(Zeile2Nr)->GetNodeName(); String Wert1 = Zeile2->Get(Zeile2Nr)->GetNodeValue(); ShowMessage(Wert1); } } } catch(Exception &e) { MessageBox(Handle, e.Message.c_str(), "Fehler", MB_ICONERROR); }
Mein Problem ist jetzt das ich beim Auslesen des XML Dokuments beim schließendem Tag "<Knotenpunkt/>" jedesmal die Fehlermeldung "Could not convert variant of Type (Null) into type (String)" bekomme. Vielleicht hat jemand einen Denkanstoß so das mir dieses Tag keine Probleme mehr macht ...
-
überprüfe erst ob dein Tag auch einen Text hat
if (Zeile2->Get(Zeile2Nr)->IsTextElement) { String Wert1 = Zeile2->Get(Zeile2Nr)->GetNodeValue(); }
-
Also doch so simpel
Danke!