C语言 libxml2 库使用示例:将 XML 文档保存到内存缓冲区
以下是一个简单的示例,演示如何使用 xmlOutputBufferCreateBuffer 和 xmlSaveToBuffer 函数来将 XML 文档保存到内存缓冲区中:
#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/xmlsave.h>
int main() {
xmlDocPtr doc = xmlNewDoc(BAD_CAST '1.0');
xmlNodePtr root = xmlNewNode(NULL, BAD_CAST 'root');
xmlDocSetRootElement(doc, root);
xmlNodePtr child1 = xmlNewChild(root, NULL, BAD_CAST 'child1', BAD_CAST 'Hello');
xmlNewProp(child1, BAD_CAST 'name', BAD_CAST 'Alice');
xmlNodePtr child2 = xmlNewChild(root, NULL, BAD_CAST 'child2', BAD_CAST 'World');
xmlNewProp(child2, BAD_CAST 'name', BAD_CAST 'Bob');
xmlOutputBufferPtr buf = xmlOutputBufferCreateBuffer(NULL, NULL);
xmlSaveToBuffer(buf, doc, 'UTF-8', XML_SAVE_NO_DECL);
xmlFreeDoc(doc);
printf('The XML document:\n%s\n', buf->buffer->content);
xmlOutputBufferClose(buf);
xmlFreeOutputBuffer(buf);
return 0;
}
在这个例子中,我们首先创建一个新的 XML 文档,并添加两个子节点。然后,我们使用 xmlOutputBufferCreateBuffer 函数创建一个新的输出缓冲区。接下来,我们使用 xmlSaveToBuffer 函数将 XML 文档保存到缓冲区中。最后,我们输出缓冲区的内容,关闭缓冲区并释放它的内存。
输出将是以下内容:
The XML document:
<root>
<child1 name='Alice'>Hello</child1>
<child2 name='Bob'>World</child2>
</root>
原文地址: https://www.cveoy.top/t/topic/n3qK 著作权归作者所有。请勿转载和采集!