如何使用 pugixml 从 url 加载 XML 文件

How to load XML file from url with pugixml

我正在尝试使用 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

谁能更熟悉这些东西,请给我一个如何做的例子。

如果有人感兴趣..我就是这样解决的:

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);

感谢大家的帮助!