2012-03-09 50 views
0

我收到了一些我想用Xerces(由CodeSynthesis生成)解析的合理的xml數據。使用Xerces從內存中加載xml

在光盤上它被加密,所以我加載它,解密並......我被卡住,因爲Xerces只將文件作爲輸入。

我曾經想過重載一個'讀者'(即std :: istream或xercesc :: InputSource)並假冒光盤讀取,但它看起來很不古怪。

有沒有更簡單和更整齊的方法來做到這一點?

謝謝!

回答

4

可以使用MemBufInputSource類:的

MemBufInputSource* pMemBufIS = new MemBufInputSource((const XMLByte*)sXmlContent.c_str(), sXmlContent.length(), "SysID", false); 
m_saxParser.parse(*pMemBufIS); 
delete pMemBufIS; 

代替

m_saxParser.parse(sXmlFilePath.c_str()); 
+0

也做到了,謝謝你啊! – Valmond 2012-03-09 10:09:00