C++ und TinyXML2

NeuerUser2012

Grünschnabel
Hi,

Ich benutze TinyXML2 um den Inhalt eines wxGrids in eine XML Datei zu schreiben.

Das wxGrd sieht folgendermaßen aus:
Jahr | Monat
----- |-------------
2012 | 03
2009 | 08


Wie die XML aussehen sollte:
<SQL>
<Datensatz>
<Jahr>2012</Jahr>
<Monat>03</Monat>
</Datensatz>
<Datensatz>
<Jahr>2009</Jahr>
<Monat>08</Monat>
</Datensatz>
</SQL>

Aber leider bekomme ich nur eine XML zustande, die die Jahre und Monate "zusammenfügt".
Wie sie aussieht:
<SQL>
<Datensatz>
<Jahr>20122009</Jahr>
<Monat>0308</Monat>
</Datensatz>
<Datensatz>
<Jahr>20122009</Jahr>
<Monat>0308</Monat>
</Datensatz>
</SQL>

Mein Code:
Code:
    XMLDocument doc;
    XMLElement* xesql = doc.NewElement("SQL");
    XMLNode * xnsql = doc.InsertFirstChild(xesql);
    XMLElement* xejahr = doc.NewElement("Jahr");
    XMLElement* xemonat = doc.NewElement("Monat");
    XMLText* datensatzJahr = doc.NewText("");
    XMLText* datensatzMonat = doc.NewText("");
    for(int i=0; i<=1; i++)
    {
        XMLElement* xedatensatz = doc.NewElement("Datensatz");
        datensatzJahr = doc.NewText(m_gd_data->GetCellValue(i,0));
        datensatzMonat = doc.NewText(m_gd_data->GetCellValue(i,1));
        xejahr->InsertEndChild(datensatzJahr);
        xemonat->InsertEndChild(datensatzMonat);
        xedatensatz->InsertEndChild(xejahr);
        xedatensatz->InsertEndChild(xemonat);
        xesql->InsertEndChild(xedatensatz);
    }
    doc.SaveFile(path);


Ich weiß wirklich nicht, wo das Problem ist. Kann jemand helfen?


Liebe Grüße,
NeuerUser
 
Hi.

Es müßte ungefähr so aussehen:
C++:
for(int i=0; i<=1; i++)
    {
        XMLElement* xedatensatz = doc.NewElement("Datensatz");
        XMLElement* xejahr = doc.NewElement("Jahr");
        XMLElement* xemonat = doc.NewElement("Monat");
        datensatzJahr = doc.NewText(m_gd_data->GetCellValue(i,0));
        datensatzMonat = doc.NewText(m_gd_data->GetCellValue(i,1));
        xejahr->InsertEndChild(datensatzJahr);
        xemonat->InsertEndChild(datensatzMonat);
        xedatensatz->InsertEndChild(xejahr);
        xedatensatz->InsertEndChild(xemonat);
        xesql->InsertEndChild(xedatensatz);
     }
Gruß
 
Zurück