wxwidgets - TinyXML2 and C++ -
i want read data wxgrid , write xml file. wxgrid like:
jahr | monat
------ |-------------
2012 | 03
2009 | 08
what want have:
<sql> <datensatz> <jahr>2012</jahr> <monat>03</monat> </datensatz> <datensatz> <jahr>2009</jahr> <monat>08</monat> </datensatz> </sql>
what got:
<sql> <datensatz> <jahr>20122009</jahr> <monat>0308</monat> </datensatz> <datensatz> <jahr>20122009</jahr> <monat>0308</monat> </datensatz> </sql>
my 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);
i don't know where's problem. can help?
you not resetting xml elements each iteration of loop, hence appending text existing element. should work:
xmldocument doc; xmlelement* xesql = doc.newelement("sql"); xmlnode * xnsql = doc.insertfirstchild(xesql); for(int i=0; i<=1; i++) { xmlelement* xejahr = doc.newelement("jahr"); xmlelement* xemonat = doc.newelement("monat"); xmltext* datensatzjahr = doc.newtext(""); xmltext* datensatzmonat = doc.newtext(""); 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);
Comments
Post a Comment