我有多个要解析的文档,我需要在创建类的生命周期内访问所有文档对象。如何创建xml_document指针数组作为成员变量?
我尝试按如下方式创建单个成员变量:
私人: rapidxml :: xml_document<> * m_pDoc; //不编译
错误:名称后跟“::”必须是类或命名空间名称
我确定这是因为模板类没有很好地定义,但我不确定如何正确定义指针。
答案 0 :(得分:1)
这对我来说很好。错误信息暗示你已经忘记了这一点,也许?
#include "rapidxml.hpp"
答案 1 :(得分:0)
每次传递xml时,Rapidxml都会引用向量缓冲区的指针。因此,存储缓冲区以及xml_document<>文档。
放置xml文档的文件路径
std::array<vector<char>,numXmlDocs> XMLDocBuffers;
std::array<xml_document<>,numXmlDocs> XMLDocs;
//For each xml doc, read and store it in an array
for(int i=0;i<numXmlDocs;i++){
//Parse each xml into the buffer array
char xmlFileName[100] ;
sprintf(xmlFileName,"%s",XMLFilePaths[i]);
ifstream theFile (xmlFileName);
vector<char> buffer((istreambuf_iterator<char>(theFile)), istreambuf_iterator<char>());
buffer.push_back('\0');
//Store the buffer
XMLDocBuffers[i] = buffer;
// Parse the buffer usingthe xml file parsing library into doc
XMLDocs[i].parse<0>(&(XMLDataset_StringDocs[i][0]));
xml_node<> *root_node; // Find the root node
root_node = (XMLDocs[i]).first_node(typesOfSamples);
将缓冲区和xml文档存储到数组中
IN clause