我得到了一些我想用Xerces解析的合理的xml数据(由CodeSynthesis生成)。
在光盘上它是加密的,所以我加载它,解密它...我被卡住了,因为Xerces只接受文件作为输入。
我曾考虑重载其中一个'读者'(即std :: istream或xercesc :: InputSource)并伪造光盘读数,但它看起来像古怪不合适。
有没有更简单,更简洁的方法呢?
谢谢!
答案 0 :(得分:5)
您可以使用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());