[英]c++ rapidjson addMember & rapidxml
當我使用c ++庫RapidJson中的AddMember函數時,我使用字符串作為參數
一切正常
jsvalue.AddMember("Fare", "0", allocator);
但是當我嘗試使用RapidXml函數作為參數獲取節點名稱時,出現致命錯誤
std::cout << "name : " << xmlnode_chd->name() << " value : " << xmlnode_chd->first_node()->value() << std::endl;
jsvalue.AddMember(std::string(xmlnode_chd->name()), std::string(xmlnode_chd->first_node()->value()), allocator);
xmlnode_chd-> name()返回一個char *,這就是為什么我將其強制轉換為字符串
這是我收到的錯誤消息:
/ home / otf / test /./ include / xml2json.hpp | 210 |錯誤:沒有匹配的函數來調用'rapidjson :: GenericValue> :: AddMember(std :: string,std :: string,Rapidjson :: GenericDocument> :: AllocatorType&)“|
Rapidjson庫的GenericValue :: AddMember方法不包含接受std :: basic_string作為其第一個參數的重載。 您可以選擇GenericValue(本身必須是字符串)或GenericStringRef。 GenericStringRef可以從const char *構造,這就是您的初始方法起作用的原因,但是不能直接通過std :: string構造。 我建議您將代碼重寫為:
jsvalue.AddMember(xmlnode_chd->name(), xmlnode_chd->first_node()->value(), allocator);
順便說一句,您可以在這里找到有關文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.