以下是一个示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libxml/parser.h>

int main()
{
    const char* path = "example.xml";
    xmlDocPtr doc;
    xmlChar* buf;
    int size;

    // 读取xml文件
    doc = xmlReadFile(path, NULL, 0);
    if (doc == NULL) {
        fprintf(stderr, "Failed to read xml file: %s\n", path);
        return 1;
    }

    // 将xml文档转换为字符串
    xmlDocDumpFormatMemory(doc, &buf, &size, 1);
    printf("XML file content:\n%s\n", buf);

    // 释放资源
    xmlFreeDoc(doc);
    xmlCleanupParser();
    xmlMemoryDump();

    return 0;
}

该代码使用了libxml2库中的xmlReadFile函数读取xml文件,然后使用xmlDocDumpFormatMemory函数将xml文档转换为字符串,并保存到内存变量buf中。在输出字符串时,保留了文档中标签的闭合方式。

需要注意的是,在使用完xmlDocPtr结构体后,需要调用xmlFreeDocxmlCleanupParser函数释放资源


原文地址: https://www.cveoy.top/t/topic/faCG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录