TinyXml добавить в файл XML
Я работаю над проектом уже несколько месяцев, и моя главная проблема, с которой я столкнулся сейчас, - добавление в XML-файл. Я могу создать файлы без проблем. Но я хочу иметь возможность добавить больше данных. В основном используйте его как небольшую базу данных.
Включенный код является лишь небольшой частью всей программы, но я считаю, что именно здесь мне нужна помощь, чтобы выяснить процесс добавления файла. Каждый элемент принимает пользовательский ввод без каких-либо проблем. но когда они идут, чтобы написать вторую лошадь, он уничтожает старый и создает новый файл.
Любые предложения о том, как добавить, было бы здорово
void WriteThisHorseToFile(char* horseName, char* horseMother, char* horseFather, char* horseHeight,
char* horseOwner, char* horseAge, char* horseWins, char* horseMarkings, char* horseNotes)
{
TiXmlDocument doc;
TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "", "" );
doc.LinkEndChild( decl );
TiXmlElement * root = new TiXmlElement( "Horses" );
doc.LinkEndChild( root );
TiXmlElement * element2 = new TiXmlElement( "Name" );
root->LinkEndChild( element2 );
TiXmlText * text2 = new TiXmlText(horseName);
element2->LinkEndChild( text2 );
TiXmlElement * element3 = new TiXmlElement( "Mother" );
element2->LinkEndChild( element3 );
TiXmlText * text3 = new TiXmlText(horseMother);
element2->LinkEndChild( text3 );
TiXmlElement * element4 = new TiXmlElement( "Father" );
element2->LinkEndChild( element4 );
TiXmlText * text4 = new TiXmlText(horseFather);
element2->LinkEndChild( text4 );
TiXmlElement * element5 = new TiXmlElement( "Height" );
element2->LinkEndChild( element5 );
TiXmlText * text5 = new TiXmlText(horseHeight);
element2->LinkEndChild( text5 );
TiXmlElement * element6 = new TiXmlElement( "Owner" );
element2->LinkEndChild( element6 );
TiXmlText * text6 = new TiXmlText(horseOwner);
element2->LinkEndChild( text6 );
TiXmlElement * element7 = new TiXmlElement( "Age" );
element2->LinkEndChild( element7 );
TiXmlText * text7 = new TiXmlText(horseAge);
element2->LinkEndChild( text7 );
TiXmlElement * element8 = new TiXmlElement( "Wins" );
element2->LinkEndChild( element8 );
TiXmlText * text8 = new TiXmlText(horseWins);
element2->LinkEndChild( text8 );
TiXmlElement * element9 = new TiXmlElement( "Markings" );
element2->LinkEndChild( element9 );
TiXmlText * text9 = new TiXmlText(horseMarkings);
element2->LinkEndChild( text9 );
TiXmlElement * element10 = new TiXmlElement( "Notes" );
element2->LinkEndChild( element10 );
TiXmlText * text10 = new TiXmlText(horseNotes);
element2->LinkEndChild( text10 );
dump_to_stdout( &doc );
doc.SaveFile("demo2.xml");
PressEnter();
}
1 ответ
Извините, что впервые публикую и просто привыкла к верстке сайта.
Как я решил проблему с добавлением для XML-файла. Оказывается, это было довольно просто. Я воспользуюсь примером выше.
это не самый чистый код, но пример все еще применяется. Теперь, когда он работает, я могу немного привести в порядок код.
Я просто надеюсь, что это поможет другим увидеть, как это можно сделать.
void WriteThisHorseToFile(char* horseName, char* horseMother, char* horseFather, char* horseHeight,
char* horseOwner, char* horseAge, char* horseWins, char* horseMarkings, char* horseNotes)
TiXmlDocument doc;
doc.LoadFile ("horses.xml");
TiXmlElement* root = doc.FirstChildElement( "Horses" );
if ( root )
{
TiXmlElement * element2 = new TiXmlElement( "Name" );
root->LinkEndChild( element2 );
TiXmlText * text2 = new TiXmlText(horseName);
element2->LinkEndChild( text2 );
//add as many child links as you wish :D
}
else
{
TiXmlDocument doc;
TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "", "" );
doc.LinkEndChild( decl );
TiXmlElement * root = new TiXmlElement( "Horses" );
doc.LinkEndChild( root );
TiXmlElement * element2 = new TiXmlElement( "Name" );
root->LinkEndChild( element2 );
TiXmlText * text2 = new TiXmlText(horseName);
element2->LinkEndChild( text2 );
//add as many child links as you wish :D
}