✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/share/doc/libxml2-devel/examples//io1.c
/**
 * section: InputOutput
 * synopsis: Example of custom Input/Output
 * purpose: Demonstrate the use of xmlRegisterInputCallbacks
 *          to build a custom I/O layer, this is used in an
 *          XInclude method context to show how dynamic document can
 *          be built in a clean way.
 * usage: io1
 * test: io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res
 * author: Daniel Veillard
 * copy: see Copyright for the status of this software.
 */

#include <stdio.h>
#include <string.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xinclude.h>
#include <libxml/xmlIO.h>

#ifdef LIBXML_XINCLUDE_ENABLED
static const char *result = "<list><people>a</people><people>b</people></list>";
static const char *cur = NULL;
static int rlen;

/**
 * sqlMatch:
 * @URI: an URI to test
 *
 * Check for an sql: query
 *
 * Returns 1 if yes and 0 if another Input module should be used
 */
static int
sqlMatch(const char * URI) {
    if ((URI != NULL) && (!strncmp(URI, "sql:", 4)))
        return(1);
    return(0);
}

/**
 * sqlOpen:
 * @URI: an URI to test
 *
 * Return a pointer to the sql: query handler, in this example simply
 * the current pointer...
 *
 * Returns an Input context or NULL in case or error
 */
static void *
sqlOpen(const char * URI) {
    if ((URI == NULL) || (strncmp(URI, "sql:", 4)))
        return(NULL);
    cur = result;
    rlen = strlen(result);
    return((void *) cur);
}

/**
 * sqlClose:
 * @context: the read context
 *
 * Close the sql: query handler
 *
 * Returns 0 or -1 in case of error
 */
static int
sqlClose(void * context) {
    if (context == NULL) return(-1);
    cur = NULL;
    rlen = 0;
    return(0);
}

/**
 * sqlRead:
 * @context: the read context
 * @buffer: where to store data
 * @len: number of bytes to read
 *
 * Implement an sql: query read.
 *
 * Returns the number of bytes read or -1 in case of error
 */
static int
sqlRead(void * context, char * buffer, int len) {
   const char *ptr = (const char *) context;

   if ((context == NULL) || (buffer == NULL) || (len < 0))
       return(-1);

   if (len > rlen) len = rlen;
   memcpy(buffer, ptr, len);
   rlen -= len;
   return(len);
}

const char *include = "<?xml version='1.0'?>\n\
<document xmlns:xi=\"http://www.w3.org/2003/XInclude\">\n\
  <p>List of people:</p>\n\
  <xi:include href=\"sql:select_name_from_people\"/>\n\
</document>\n";

int main(void) {
    xmlDocPtr doc;

    /*
     * this initialize the library and check potential ABI mismatches
     * between the version it was compiled for and the actual shared
     * library used.
     */
    LIBXML_TEST_VERSION

    /*
     * register the new I/O handlers
     */
    if (xmlRegisterInputCallbacks(sqlMatch, sqlOpen, sqlRead, sqlClose) < 0) {
        fprintf(stderr, "failed to register SQL handler\n");
	exit(1);
    }
    /*
     * parse include into a document
     */
    doc = xmlReadMemory(include, strlen(include), "include.xml", NULL, 0);
    if (doc == NULL) {
        fprintf(stderr, "failed to parse the including file\n");
	exit(1);
    }

    /*
     * apply the XInclude process, this should trigger the I/O just
     * registered.
     */
    if (xmlXIncludeProcess(doc) <= 0) {
        fprintf(stderr, "XInclude processing failed\n");
	exit(1);
    }

#ifdef LIBXML_OUTPUT_ENABLED
    /*
     * save the output for checking to stdout
     */
    xmlDocDump(stdout, doc);
#endif

    /*
     * Free the document
     */
    xmlFreeDoc(doc);

    /*
     * Cleanup function for the XML library.
     */
    xmlCleanupParser();
    /*
     * this is to debug memory for regression tests
     */
    xmlMemoryDump();
    return(0);
}
#else
int main(void) {
    fprintf(stderr, "XInclude support not compiled in\n");
    exit(1);
}
#endif

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
1 Sep 2026 4.57 AM
root / root
0755
Makefile.am
4.016 KB
17 Jan 2022 7.45 PM
root / root
0644
Makefile.in
34.332 KB
20 Feb 2022 12.11 PM
root / root
0644
examples.xml
31.391 KB
17 Jan 2022 7.24 PM
root / root
0644
examples.xsl
7.063 KB
17 Jan 2022 9.23 PM
root / root
0644
index.html
32.121 KB
17 Jan 2022 7.45 PM
root / root
0644
index.py
8.993 KB
17 Jan 2022 7.45 PM
root / root
0644
io1.c
3.665 KB
26 Jun 2020 12.29 PM
root / root
0644
io1.res
0.161 KB
26 Jun 2020 12.29 PM
root / root
0644
io2.c
1.154 KB
26 Jun 2020 12.29 PM
root / root
0644
io2.res
0.042 KB
26 Jun 2020 12.29 PM
root / root
0644
parse1.c
1.266 KB
6 Aug 2020 9.09 AM
root / root
0644
parse2.c
1.923 KB
6 Aug 2020 9.09 AM
root / root
0644
parse3.c
1.467 KB
6 Aug 2020 9.09 AM
root / root
0644
parse4.c
3.458 KB
6 Aug 2020 9.09 AM
root / root
0644
reader1.c
2.47 KB
6 Aug 2020 9.09 AM
root / root
0644
reader1.res
0.146 KB
26 Jun 2020 12.29 PM
root / root
0644
reader2.c
3.06 KB
26 Jun 2020 12.29 PM
root / root
0644
reader3.c
2.878 KB
6 Aug 2020 9.09 AM
root / root
0644
reader3.res
0.352 KB
26 Jun 2020 12.29 PM
root / root
0644
reader4.c
3.054 KB
6 Aug 2020 9.09 AM
root / root
0644
reader4.res
0.07 KB
26 Jun 2020 12.29 PM
root / root
0644
test1.xml
0.007 KB
26 Jun 2020 12.29 PM
root / root
0644
test2.xml
0.222 KB
26 Jun 2020 12.29 PM
root / root
0644
test3.xml
0.813 KB
26 Jun 2020 12.29 PM
root / root
0644
testWriter.c
37.598 KB
6 Aug 2020 9.09 AM
root / root
0644
tree1.c
2.192 KB
26 Jun 2020 12.29 PM
root / root
0644
tree1.res
0.118 KB
26 Jun 2020 12.29 PM
root / root
0644
tree2.c
3.335 KB
26 Jun 2020 12.29 PM
root / root
0644
tree2.res
0.442 KB
26 Jun 2020 12.29 PM
root / root
0644
tst.xml
0.089 KB
26 Jun 2020 12.29 PM
root / root
0644
writer.xml
0.531 KB
26 Jun 2020 12.29 PM
root / root
0644
xpath1.c
6.469 KB
26 Jun 2020 12.29 PM
root / root
0644
xpath1.res
0.111 KB
26 Jun 2020 12.29 PM
root / root
0644
xpath2.c
5.205 KB
26 Jun 2020 12.29 PM
root / root
0644
xpath2.res
0.739 KB
26 Jun 2020 12.29 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF