以下是一个简单的示例,演示如何使用 xmlOutputBufferCreateBufferxmlSaveToBuffer 函数来将 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>
C语言 libxml2 库使用示例:将 XML 文档保存到内存缓冲区

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

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