是否可以在字節流上使用TinyXML而不是文件?在字節流而不是文件上使用TinyXML
考慮下面的代碼片斷:
TiXmlDocument doc("abc.xml");
if (!doc.LoadFile())
return;
TiXmlHandle hDoc(&doc);
上面代碼段需要一個文件作爲輸入。我如何修改代碼以便接受字節流?示例代碼片段會很棒!
是否可以在字節流上使用TinyXML而不是文件?在字節流而不是文件上使用TinyXML
考慮下面的代碼片斷:
TiXmlDocument doc("abc.xml");
if (!doc.LoadFile())
return;
TiXmlHandle hDoc(&doc);
上面代碼段需要一個文件作爲輸入。我如何修改代碼以便接受字節流?示例代碼片段會很棒!
直接調用TinyXmlDocument::Parse
,將NULL
作爲第一個參數終止字節流。 (請參閱TinyXmlDocument::LoadFile
關於如何調用此函數的實現)。
編譯TinyXML的STL的支持後,您可以使用>>在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