是否可以在字节流而不是文件上使用 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