xref: /aosp_15_r20/external/libxml2/example/io2.c (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker /**
2*7c568831SAndroid Build Coastguard Worker  * section: InputOutput
3*7c568831SAndroid Build Coastguard Worker  * synopsis: Output to char buffer
4*7c568831SAndroid Build Coastguard Worker  * purpose: Demonstrate the use of xmlDocDumpMemory
5*7c568831SAndroid Build Coastguard Worker  *          to output document to a character buffer
6*7c568831SAndroid Build Coastguard Worker  * usage: io2
7*7c568831SAndroid Build Coastguard Worker  * test: io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
8*7c568831SAndroid Build Coastguard Worker  * author: John Fleck
9*7c568831SAndroid Build Coastguard Worker  * copy: see Copyright for the status of this software.
10*7c568831SAndroid Build Coastguard Worker  */
11*7c568831SAndroid Build Coastguard Worker 
12*7c568831SAndroid Build Coastguard Worker #include <libxml/parser.h>
13*7c568831SAndroid Build Coastguard Worker 
14*7c568831SAndroid Build Coastguard Worker #if defined(LIBXML_OUTPUT_ENABLED)
15*7c568831SAndroid Build Coastguard Worker int
main(void)16*7c568831SAndroid Build Coastguard Worker main(void)
17*7c568831SAndroid Build Coastguard Worker {
18*7c568831SAndroid Build Coastguard Worker 
19*7c568831SAndroid Build Coastguard Worker     xmlNodePtr n;
20*7c568831SAndroid Build Coastguard Worker     xmlDocPtr doc;
21*7c568831SAndroid Build Coastguard Worker     xmlChar *xmlbuff;
22*7c568831SAndroid Build Coastguard Worker     int buffersize;
23*7c568831SAndroid Build Coastguard Worker 
24*7c568831SAndroid Build Coastguard Worker     /*
25*7c568831SAndroid Build Coastguard Worker      * Create the document.
26*7c568831SAndroid Build Coastguard Worker      */
27*7c568831SAndroid Build Coastguard Worker     doc = xmlNewDoc(BAD_CAST "1.0");
28*7c568831SAndroid Build Coastguard Worker     n = xmlNewDocNode(doc, NULL, BAD_CAST "root", NULL);
29*7c568831SAndroid Build Coastguard Worker     xmlNodeSetContent(n, BAD_CAST "content");
30*7c568831SAndroid Build Coastguard Worker     xmlDocSetRootElement(doc, n);
31*7c568831SAndroid Build Coastguard Worker 
32*7c568831SAndroid Build Coastguard Worker     /*
33*7c568831SAndroid Build Coastguard Worker      * Dump the document to a buffer and print it
34*7c568831SAndroid Build Coastguard Worker      * for demonstration purposes.
35*7c568831SAndroid Build Coastguard Worker      */
36*7c568831SAndroid Build Coastguard Worker     xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
37*7c568831SAndroid Build Coastguard Worker     printf("%s", (char *) xmlbuff);
38*7c568831SAndroid Build Coastguard Worker 
39*7c568831SAndroid Build Coastguard Worker     /*
40*7c568831SAndroid Build Coastguard Worker      * Free associated memory.
41*7c568831SAndroid Build Coastguard Worker      */
42*7c568831SAndroid Build Coastguard Worker     xmlFree(xmlbuff);
43*7c568831SAndroid Build Coastguard Worker     xmlFreeDoc(doc);
44*7c568831SAndroid Build Coastguard Worker 
45*7c568831SAndroid Build Coastguard Worker     return (0);
46*7c568831SAndroid Build Coastguard Worker 
47*7c568831SAndroid Build Coastguard Worker }
48*7c568831SAndroid Build Coastguard Worker #else
49*7c568831SAndroid Build Coastguard Worker #include <stdio.h>
50*7c568831SAndroid Build Coastguard Worker 
51*7c568831SAndroid Build Coastguard Worker int
main(void)52*7c568831SAndroid Build Coastguard Worker main(void)
53*7c568831SAndroid Build Coastguard Worker {
54*7c568831SAndroid Build Coastguard Worker     fprintf(stderr,
55*7c568831SAndroid Build Coastguard Worker             "library not configured with output support\n");
56*7c568831SAndroid Build Coastguard Worker     return (0);
57*7c568831SAndroid Build Coastguard Worker }
58*7c568831SAndroid Build Coastguard Worker #endif
59