カテゴリー
アーカイブ
2019/01/07 / xml の読込み への1件のコメント
幾つかの xml データを読んでみると,データにより msxml.dll を使用したときに比べて明らかに遅い.
bool Test (LPCTSTR pathName)
{
tstring outPath = ::Get_i_Tools_tmp_date() ;
tstring now_hms = ::Now_Format(_T("_%M%S")) ;
tstring out_xml = ::Path_AddLastSP(outPath) + ::Path_GetName(pathName) + now_hms + _T(".o.xml") ;
tstring new_xml = ::Path_AddLastSP(outPath) + ::Path_GetName(pathName) + now_hms + _T(".n.xml") ;
{
ElapseTime eto ;
Xml_E xml = ::Xml_Import(pathName) ;
std::cerr << eto.GetElapse() << std::endl ;
Xml_Out::Export(xml,out_xml.c_str()) ;
}
{
ElapseTime etn ;
Xml_E xml = ::Load_xml_2018_12(pathName) ;
std::cerr << etn.GetElapse() << std::endl ;
Xml_Out::Export(xml,new_xml.c_str()) ;
}
return true ;
}
データは次の様な x3d で,5 倍くらいかかる.
x3d の場合は,属性の値が長い.
そのため次のコード部分( q_str+=cq )がうまくない.
tstring Parse_xml_quot (c_tstring& str,const TCHAR qm,size_t* index)
{
tstring q_str ;
if (*index < str.length()) {
TCHAR c = str[*index] ;
if (c == qm) {
q_str += c ;
for (size_t indexQ=*index+1 ; indexQ<str.size() ; indexQ++) {
TCHAR cq = str[indexQ] ;
q_str += cq ;
if (cq == qm) {
*index = indexQ ;
break ;
}
}
}
}
return q_str ;
}
https://jml.mish.work/index.php/cpp/xml.html
Is this 投稿 useful?
Useful
Useless
0 of 0 people say this 投稿 is useful.