3,055
社区成员
发帖
与我相关
我的任务
分享
//修改当前节点子项的内容,没有则添加子项
void CXMLFiles2::ModifySubItem(const CString paramName, const CString paramValue)
{
m_mark->ResetMainPos(); //回到父节点的头一个子节点
if (m_mark == NULL)
{
return;
}
if(!m_mark->FindElem(paramName)){
m_mark->AddElem(paramName, paramValue, 1);
}else{
m_mark->SetData(paramValue, 1);
}
}
std::ofstream out(filename);
out << *doc;
out.close();
/*
结果:
总共耗时:30.4s
保存耗时:29.9s
*/
std::string text;
rapidxml::print(std::back_inserter(text), *doc, 0);
/*
结果:
总共耗时:66.4s
保存耗时:65.7s
*/
XML最后大小2.32MB,参数10800个
//修改当前节点子项的内容,没有则添加子项
void CXMLFiles2::ModifySubItem(const CString paramName, const CString paramValue)
{
m_content += _T("<");
m_content += paramName;
m_content += _T("<![CDATA[");
m_content += _T("]]></");
M_content += paramValue;
m_content += _T(">");
}
最后完成时使用CFile保存字符串m_content ,发现用的时间还是有14~20s。其中字符串拼接的过程耗时最大,最后保存时间较少。
不知道是写文件本来就这么慢,还是程序的问题??