2013-01-11 36 views
0

我在VC工作++,並試圖加載XML文件以及整個數據加載到一個字符串,但我沒有得到結果加載XML值,並將其傳遞到字符串在VC++

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的全部內容,包括標題,元素和值。 請幫忙。

回答

0

我不喜歡這樣,與C語言代碼更少,更多的C++代碼和自嘲的長度神奇數字700的危險字符數組:

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); 
+0

非常感謝你。我的addlog_message函數是------- >>>>> void AddLOG_message(char * message,int len,int add_time)if char print - >> char texts [700] = {「「}我的回報只有136。我需要字符串中的完整xml結構。 – user1441251

+0

@ user1441251你可以使參數爲'const char * message'嗎?否則我的答案將不起作用,你仍然需要'char text [700]',但是更容易'strncpy(text,printer.CStr(),699);' – acraig5075

+0

我用這個char映射了很多*。如果我更改爲const char *,那麼會出現錯誤「const char與TCHAR類型的參數不兼容」void AddLOG_message(const char * message,int len,int add_time) 請在此幫助我 – user1441251

相關問題