xmlOutputBufferCreateBuffer 和xmlSaveToBuffer示例
以下是一个简单的示例,演示如何使用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/faB7 著作权归作者所有。请勿转载和采集!