我得到了一些想用Xerces解析的有意义的xml数据(由CodeSynthesis生成)。
在光盘上,它已加密,因此我将其加载,解密并... ...我被卡住了,因为Xerces仅将文件作为输入。
我曾考虑过要重载其中一个“读取器”(即std :: istream或xercesc :: InputSource)并伪造光盘读取内容,但它看起来似乎很古怪。
有没有更简单,更整洁的方法来做到这一点?
谢谢!
最佳答案
您可以使用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());