2016-06-14 18 views
1

私はC++ライブラリRapidJsonから関数AddMemberを使用してC++ rapidjson addMember&rapidxml

すべての作業罰金

jsvalue.AddMember("Fare", "0", allocator); 

は、パラメータとして、私は文字列を使用する場合が、私はとRapidXmlの機能を使用するようにしてください私は、文字列

にキャストし、なぜノード名を取得するためのパラメータは、I致命的なエラーが出ます

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->名前()、char *を返し、それはです

これは私が取得エラーメッセージです:

/home/otf/test/./include/xml2json.hpp|210|error:「rapidjson :: GenericValue>への呼び出しに該当する機能:: AddMember( std :: string、std :: string、rapidjson :: GenericDocument :: :: AllocatorType &) '|

答えて

2

rapidjsonライブラリのGenericValue :: AddMemberメソッドには、最初のパラメータとしてstd :: basic_stringを受け入れるオーバーロードが含まれていません。選択肢はGenericValue(文字列自体である必要があります)またはGenericStringRefです。 GenericStringRefはconst char *から構築することができます。これは最初のメソッドが機能した理由ですが、std :: stringで直接構築することはできません。ところで、あなたはこのhere

上のドキュメントを見つけることができます

jsvalue.AddMember(xmlnode_chd->name(), xmlnode_chd->first_node()->value(), allocator); 

:私はあなたにあなたのコードを書き換えるお勧めします

関連する問題