本文介绍了使Xerces解析字符串而不是文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道如何仅使用XercesDOMParser从xml文件创建完整的dom:
I know how to create a complete dom from an xml file just using XercesDOMParser:
xercesc::XercesDOMParser parser = new xercesc::XercesDOMParser();
parser->parse(path_to_my_file);
parser->getDocument(); // From here on I can access all nodes and do whatever i want
嗯,那行得通...但是,如果我想解析一个字符串怎么办?像
Well, that works... but what if I'd want to parse a string? Something like
std::string myxml = "<root>...</root>";
xercesc::XercesDOMParser parser = new xercesc::XercesDOMParser();
parser->parse(myxml);
parser->getDocument(); // From here on I can access all nodes and do whatever i want
我正在使用版本3.在AbstractDOMParser
内部,我看到了该解析方法及其重载版本,仅解析文件.
I'm using version 3. Looking inside the AbstractDOMParser
I see that parse method and its overloaded versions, only parse files.
如何从字符串中解析?
推荐答案
创建 MemBufInputSource
和 parse
Create a MemBufInputSource
and parse
that:
xercesc::MemBufInputSource myxml_buf(myxml.c_str(), myxml.size(),
"myxml (in memory)");
parser->parse(myxml_buf);
这篇关于使Xerces解析字符串而不是文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!