使用Xerces从内存加载xml

时间:2012-03-09 09:13:21

标签: c++ xml file memory xerces

我得到了一些我想用Xerces解析的合理的xml数据(由CodeSynthesis生成)。

在光盘上它是加密的,所以我加载它,解密它...我被卡住了,因为Xerces只接受文件作为输入。

我曾考虑重载其中一个'读者'(即std :: istream或xercesc :: InputSource)并伪造光盘读数,但它看起来像古怪不合适。

有没有更简单,更简洁的方法呢?

谢谢!

1 个答案:

答案 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());