加载xml值并将其传递给vc ++中的字符串

时间:2013-01-11 07:31:27

标签: c++ visual-c++ xml-parsing tinyxml

我在vc ++中工作并尝试加载xml文件并将整个数据加载到字符串中但是没有得到结果

 char text[700] = {""};

 TiXmlDocument doc( "'demotest.xml" );
 bool loadOkay = doc.LoadFile();
 if ( !loadOkay )
 {
    printf( "Could not load test file 'demotest.xml'. Error='%s'. Exiting.\n", doc.ErrorDesc() );
    system("PAUSE");
    exit( 1 );
}

    printf( "** Demo doc read from disk: ** \n\n" );
    printf( "** Printing via doc.Print **\n" );
    //doc.Print( stdout );

    {
        printf( "** Printing via TiXmlPrinter **\n" );
        TiXmlPrinter printer;
        doc.Accept( &printer );
        fprintf( stdout, "%s", printer.CStr() );

//upto this line its working fine in console. but when I convert this string am getting struck

        wsprintf(text, "%s", (char*)printer.CStr());
        AddLOG_message(text, 0, true);



    }

最后两行我应该得到xml的全部内容,包括标题,元素和值。 请帮忙。

1 个答案:

答案 0 :(得分:0)

我会这样做,使用更少的C代码,更多的C ++代码并且弃用长度幻数700的风险char数组:

TiXmlPrinter printer;
doc.Accept( &printer );
doc.Print(); // simpler for stdout output
std::string text = printer.CStr(); // easier, safer this way
AddLOG_message( text.c_str(), 0, true );