2010-10-15 46 views
3

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

考慮下面的代碼片斷:

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

上面代碼段需要一個文件作爲輸入。我如何修改代碼以便接受字節流?示例代碼片段會很棒!

回答

3

直接調用TinyXmlDocument::Parse,將NULL作爲第一個參數終止字節流。 (請參閱TinyXmlDocument::LoadFile關於如何調用此函數的實現)。

1

編譯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

相關問題