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