ファイルの代わりにバイト ストリームで TinyXML を使用することは可能ですか?
次のコード スニペットを検討してください。
TiXmlDocument doc("abc.xml");
if (!doc.LoadFile())
return;
TiXmlHandle hDoc(&doc);
上記のコード スニペットは、ファイルを入力として受け取ります。バイト ストリームを受け入れるようにコードを変更するにはどうすればよいですか? サンプルコードスニペットは素晴らしいでしょう!
TinyXmlDocument::Parse終了したNULLバイト ストリームを最初の引数として直接呼び出します。TinyXmlDocument::LoadFile(この関数の呼び出し方法については、の実装を参照してください)。
STL サポートを使用して TinyXML をコンパイルした後、TiXmlNode基本クラスで定義されている >> 演算子を使用できます。
std::istream& operator>> (std::istream & in, TiXmlNode & base)
そして実際の例として:
std::istream & stream = /*your stream here*/;
TiXmlDocument xmlDoc;
stream >> xmlDoc;
TinyXMLドキュメントからの参照:
TinyXML は、STL を使用するかどうかにかかわらずコンパイルできます。STL を使用する場合、TinyXML は std::string クラスを使用し、std::istream、std::ostream、operator<<、および operator>> を完全にサポートします。(...) コンパイル時の定義を使用: TIXML_USE_STL