次のようなメッセージからxmlを解析しようとしています:
char * data = message.c_str ();
文字列または文字配列データを使用して、xml ファイルを使用せずに xmlDoc を作成するにはどうすればよいですか?
TiXmlDocumentのParseメソッドでできると思います。次のようなものです:
TiXmlDocument doc;
doc.Parse((const char*)data, 0, TIXML_ENCODING_UTF8);
std::istream& operator >> (std::istream& in, TiXmlNode& base);
で定義されている関数を使用できますtinyxml.h
。
C++ スタイルの入力:
に基づく
std::istream operator>>
ストリームから XML を読み取り、ネットワーク転送に役立ちます。難しいのは、XML ドキュメントがいつ完成するかを知ることです。これは、ほぼ確実にストリーム内に他のデータが存在するためです。TinyXML は、ルート要素を読み取った後、XML データが完全であると想定します。別の言い方をすれば、複数のルート要素で構成されていない文書は正しく読み取れません。また、STL の実装と TinyXML の制限の両方により、operator>> は Parse よりもやや遅いことに注意してください。