Home | History | Annotate | Download | only in examples
      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