c++ - 使 Xerces 解析字符串而不是文件

标签 c++ xml parsing xerces-c

我知道如何仅使用 XercesDOMParser 从 xml 文件创建完整的 dom:

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

嗯,这行得通...但是如果我想解析一个字符串怎么办?类似的东西

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 内部,我看到了 parse 方法及其重载版本,仅解析文件。

如何从字符串中解析?

最佳答案

创建一个 MemBufInputSourceparse那:

xercesc::MemBufInputSource myxml_buf(myxml.c_str(), myxml.size(),
                                     "myxml (in memory)");
parser->parse(myxml_buf);

关于c++ - 使 Xerces 解析字符串而不是文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4691039/

相关文章:

c++ - 哪个版本的 C++ 标准允许重用先前由具有 const 或引用成员的类的对象占用的存储空间?

java - 使用 xslt 从 xsd 生成 xml

sql-server - SQL Server 2008 的自定义字段

php - 如何从 phpbb 论坛查询整页?

Python - 解析字符串并将其转换为列表

java - 将日期从 json 解析为对象时出错

C++计算时间间隔

c++ - 如何编译 Duff 的设备代码?

c++ - 具有用户定义函数的输出 vector

xml - Marklogic 中具有相同 URI 的不同文档