簡體   English   中英

時間:2019-05-10標簽:c ++ RapidJSON addMember&RapidXML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM