我正在尝试使用pugixml解析器从URL加载XML文件。问题是,如果您想从URL加载文件,则必须从内存加载文件,这对我来说非常混乱。这是我尝试过的方法,但是不起作用:
char* source = "http://some_url.xml";
int size = 256;
char* buffer = new char[size];
memcpy(buffer, source, size);
pugi::xml_document doc;
doc.load_buffer_inplace(buffer, size);
...
delete[] buffer;
以下是他们的文档:https://pugixml.org/docs/manual.html#loading.memory
请对我熟悉的人给我一个例子。
答案 0 :(得分:0)
如果有人感兴趣..这就是我的解决方法:
const char* f = "new_file.xml";
if (curl){
const char* c_url = "some_url";
FILE* ofile = fopen(f, "wb");
if (!ofile) { fprintf(stderr, "Failed to open file: %s\n", strerror(errno)); }
if (ofile){
curl_easy_setopt(curl, CURLOPT_URL, c_url);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, ofile);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeData);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_perform(curl);
fclose(ofile);
}
}
pugi::xml_document doc;
doc.load_file(f);
感谢所有帮助人员!