在字节流而不是文件上使用TinyXML

时间:2010-10-15 06:54:47

标签: c++ c tinyxml

是否可以在字节流而不是文件上使用TinyXML?

请考虑以下代码段:

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

上面的代码片段将文件作为输入。如何修改代码以使其接受字节流?示例代码段非常棒!

2 个答案:

答案 0 :(得分:3)

使用TinyXmlDocument::Parse终止的字节流作为第一个参数直接调用NULL。 (参见TinyXmlDocument::LoadFile关于如何调用此函数的实现。)

答案 1 :(得分:1)

在使用STL支持编译TinyXML后,您可以使用>> TiXmlNode基类中定义的运算符:

std::istream& operator>> (std::istream & in, TiXmlNode & base)  

作为一个工作的例子:

std::istream & stream = /*your stream here*/;
TiXmlDocument xmlDoc;
stream >> xmlDoc;

来自TinyXML documentation的参考:

  

可以编译TinyXML以使用或不使用STL。使用STL时,TinyXML使用std :: string类,并完全支持std :: istream,std :: ostream,operator<<<<>>。   (......)   使用编译时定义:TIXML_USE_STL