3

ファイルの代わりにバイト ストリームで TinyXML を使用することは可能ですか?

次のコード スニペットを検討してください。

TiXmlDocument doc("abc.xml");
if (!doc.LoadFile())
 return;
TiXmlHandle hDoc(&doc);

上記のコード スニペットは、ファイルを入力として受け取ります。バイト ストリームを受け入れるようにコードを変更するにはどうすればよいですか? サンプルコードスニペットは素晴らしいでしょう!

4

2 に答える 2

3

TinyXmlDocument::Parse終了したNULLバイト ストリームを最初の引数として直接呼び出します。TinyXmlDocument::LoadFile(この関数の呼び出し方法については、の実装を参照してください)。

于 2010-10-15T07:10:49.443 に答える
1

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

于 2016-05-25T11:53:24.550 に答える