Edit

kc3-lang/libxml2/doc/examples/io2.c

Branch :

  • Show log

    Commit

  • Author : Nick Wellnhofer
    Date : 2022-05-20 23:28:25
    Hash : 3e7b4f37
    Message : Avoid calling xmlSetTreeDoc Create text nodes with xmlNewDocText or set the document directly to avoid xmlSetTreeDoc being called when the node is inserted.

  • doc/examples/io2.c
  • /**
     * section: InputOutput
     * synopsis: Output to char buffer
     * purpose: Demonstrate the use of xmlDocDumpMemory
     *          to output document to a character buffer
     * usage: io2
     * test: io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
     * author: John Fleck
     * copy: see Copyright for the status of this software.
     */
    
    #include <libxml/parser.h>
    
    #if defined(LIBXML_TREE_ENABLED) && defined(LIBXML_OUTPUT_ENABLED)
    int
    main(void)
    {
    
        xmlNodePtr n;
        xmlDocPtr doc;
        xmlChar *xmlbuff;
        int buffersize;
    
        /*
         * Create the document.
         */
        doc = xmlNewDoc(BAD_CAST "1.0");
        n = xmlNewDocNode(doc, NULL, BAD_CAST "root", NULL);
        xmlNodeSetContent(n, BAD_CAST "content");
        xmlDocSetRootElement(doc, n);
    
        /*
         * Dump the document to a buffer and print it
         * for demonstration purposes.
         */
        xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
        printf("%s", (char *) xmlbuff);
    
        /*
         * Free associated memory.
         */
        xmlFree(xmlbuff);
        xmlFreeDoc(doc);
    
        return (0);
    
    }
    #else
    #include <stdio.h>
    
    int
    main(void)
    {
        fprintf(stderr,
                "library not configured with tree and output support\n");
        return (0);
    }
    #endif