1 /** 2 * section: Parsing 3 * synopsis: Parse an XML document in memory to a tree and free it 4 * purpose: Demonstrate the use of xmlReadMemory() to read an XML file 5 * into a tree and and xmlFreeDoc() to free the resulting tree 6 * usage: parse3 7 * test: parse3 8 * author: Daniel Veillard 9 * copy: see Copyright for the status of this software. 10 */ 11 12 #include <stdio.h> 13 #include <libxml/parser.h> 14 #include <libxml/tree.h> 15 16 static const char *document = "<doc/>"; 17 18 /** 19 * example3Func: 20 * @content: the content of the document 21 * @length: the length in bytes 22 * 23 * Parse the in memory document and free the resulting tree 24 */ 25 static void 26 example3Func(const char *content, int length) { 27 xmlDocPtr doc; /* the resulting document tree */ 28 29 /* 30 * The document being in memory, it have no base per RFC 2396, 31 * and the "noname.xml" argument will serve as its base. 32 */ 33 doc = xmlReadMemory(content, length, "noname.xml", NULL, 0); 34 if (doc == NULL) { 35 fprintf(stderr, "Failed to parse document\n"); 36 return; 37 } 38 xmlFreeDoc(doc); 39 } 40 41 int main(void) { 42 /* 43 * this initialize the library and check potential ABI mismatches 44 * between the version it was compiled for and the actual shared 45 * library used. 46 */ 47 LIBXML_TEST_VERSION 48 49 example3Func(document, 6); 50 51 /* 52 * Cleanup function for the XML library. 53 */ 54 xmlCleanupParser(); 55 /* 56 * this is to debug memory for regression tests 57 */ 58 xmlMemoryDump(); 59 return(0); 60 } 61