Is it Possible to Send libxml Output to a File Han

2019-09-03 11:38发布

This is a simplified version of my earlier question, which may have been too situation specific to allow anyone to answer.

Is it possible to send libxml output to a file handle of a previously opened file (E.G. stdin) rather than a file name as used in these examples?

If it is then it may provide an answer to my earlier query.

Versions etc. Language: C Fedora Linux r20 Apache 2.4.10 libxml2

标签: c libxml2
1条回答
2楼-- · 2019-09-03 12:04

This is from the same link you posted

xmlBufferPtr buf;
/* Create a new XML buffer, to which the XML document will be
 * written */
buf = xmlBufferCreate();
if (buf == NULL) {
    printf("testXmlwriterMemory: Error creating the xml buffer\n");
    return;
}

/* Create a new XmlWriter for memory, with no compression.
 * Remark: there is no compression for this kind of xmlTextWriter */
writer = xmlNewTextWriterMemory(buf, 0);
if (writer == NULL) {
    printf("testXmlwriterMemory: Error creating the xml writer\n");
    return;
}

after you finish writing to the memory buffer you can

fprintf(file, "%s", buf->content);

or if you used open

write(fd, buf->content, buf->size);
查看更多
登录 后发表回答