【问题标题】:Using TinyXML over a byte stream instead of file在字节流而不是文件上使用 TinyXML
【发布时间】:2010-10-15 06:54:47
【问题描述】:

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

考虑这段代码sn-p:

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

上面的代码 sn -p 将一个文件作为输入。如何修改代码以使其接受字节流?一个示例代码 sn-p 会很棒!

【问题讨论】:

    标签: c++ c tinyxml


    【解决方案1】:

    NULL 终止的字节流作为第一个参数直接调用TinyXmlDocument::Parse。 (该函数的调用方法见TinyXmlDocument::LoadFile的实现)。

    【讨论】:

      【解决方案2】:

      在使用 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

      【讨论】:

        猜你喜欢
        • 2011-02-21
        • 2012-08-04
        • 2012-02-28
        • 1970-01-01
        • 1970-01-01
        • 2013-06-05
        • 1970-01-01
        • 1970-01-01
        • 2012-01-02
        相关资源
        最近更新 更多