1.当插入element时,如何设置text,主要是要插入TiXmlText,详见下面的代码
int CSELUSR_DLG::InsertScore(CString CourseID,CString SubCourseID,CString PlayerID) { TiXmlDocument doc( "GolfScores.xml" ); TiXmlNode* node = 0; TiXmlElement* todoElement = 0; TiXmlElement* itemElement = 0; bool loadOkay = doc.LoadFile(); int i=0; int max=-1; //AfxMessageBox(_T("3")); if ( !loadOkay ) { AfxMessageBox(_T("open GolfScores.xml file failed")); } else { // AfxMessageBox(_T("4")); node = doc.FirstChild( "GolfScores" ); assert( node ); todoElement = node->ToElement(); assert( todoElement ); itemElement = todoElement->FirstChildElement(); assert( itemElement ); int nindex=1; while(itemElement!=NULL) { const char * cid=itemElement->GetText(); int nid=atoi(cid); if(max<nid)max=nid; delete[] cid; itemElement=itemElement->NextSiblingElement(); } char * pCourseID=NULL; char * pSubCourseID=NULL; char * pPlayerID=NULL; MyWideCharToMultiByte(CourseID,&pCourseID); MyWideCharToMultiByte(SubCourseID,&pSubCourseID); MyWideCharToMultiByte(PlayerID,&pPlayerID); max++; COleDateTime startdt=COleDateTime::GetCurrentTime(); char chstartdt[30]; sprintf(chstartdt,"%04d-%02d-%02d %02d:%02d:%02d",startdt.GetYear(),startdt.GetMonth(),startdt.GetDay(),startdt.GetHour()-1,startdt.GetMinute(),startdt.GetSecond()); TiXmlElement xmlid( "ID" ); xmlid.SetAttribute( "CourseID", pCourseID ); xmlid.SetAttribute( "SubCourseID", pSubCourseID); xmlid.SetAttribute("PlayerID",pPlayerID); xmlid.SetAttribute( "ScoreHole1", "" ); xmlid.SetAttribute( "ScoreHole2", "" ); xmlid.SetAttribute( "ScoreHole3", "" ); xmlid.SetAttribute( "ScoreHole4", "" ); xmlid.SetAttribute( "ScoreHole5", "" ); xmlid.SetAttribute( "ScoreHole6", "" ); xmlid.SetAttribute( "ScoreHole7", "" ); xmlid.SetAttribute( "ScoreHole8", "" ); xmlid.SetAttribute( "ScoreHole9", "" ); xmlid.SetAttribute( "ScoreHole10", "" ); xmlid.SetAttribute( "ScoreHole11", "" ); xmlid.SetAttribute( "ScoreHole12", "" ); xmlid.SetAttribute( "ScoreHole13", "" ); xmlid.SetAttribute( "ScoreHole14", "" ); xmlid.SetAttribute( "ScoreHole15", "" ); xmlid.SetAttribute( "ScoreHole16", "" ); xmlid.SetAttribute( "ScoreHole17", "" ); xmlid.SetAttribute( "ScoreHole18", "" ); xmlid.SetAttribute( "RaceStartTime", chstartdt); xmlid.SetAttribute( "RaceEndTime", "" ); xmlid.SetAttribute( "ScoreStatistics", "" ); xmlid.SetAttribute( "Remarks", "" ); xmlid.SetAttribute( "Finished", "0" ); char chscoreid[25]; sprintf(chscoreid,"%d",max); //xmlid.SetValue(chscoreid); TiXmlText xmltext(chscoreid); xmlid.InsertEndChild(xmltext); todoElement->InsertEndChild(xmlid); delete[] pCourseID; delete[] pSubCourseID; delete[] pPlayerID; } doc.SaveFile("GolfScores.xml"); doc.Clear(); return max; }