[ SYSTEM ]: Linux srv.persadacompanies.com 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
[ SERVER ]: Apache | PHP: 8.4.19
[ USER ]: persadamedika | IP: 45.64.1.108
GEFORCE FILE MANAGER
/
usr
/
share
/
doc
/
libxml2-devel
/
examples
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📄 Makefile.am
4,093 B
SET
[ EDIT ]
|
[ DEL ]
📄 Makefile.in
33,309 B
SET
[ EDIT ]
|
[ DEL ]
📄 examples.xml
32,157 B
SET
[ EDIT ]
|
[ DEL ]
📄 examples.xsl
7,232 B
SET
[ EDIT ]
|
[ DEL ]
📄 index.html
32,920 B
SET
[ EDIT ]
|
[ DEL ]
📄 index.py
9,209 B
SET
[ EDIT ]
|
[ DEL ]
📄 io1.c
3,753 B
SET
[ EDIT ]
|
[ DEL ]
📄 io1.res
165 B
SET
[ EDIT ]
|
[ DEL ]
📄 io2.c
1,182 B
SET
[ EDIT ]
|
[ DEL ]
📄 io2.res
43 B
SET
[ EDIT ]
|
[ DEL ]
📄 parse1.c
1,300 B
SET
[ EDIT ]
|
[ DEL ]
📄 parse2.c
1,967 B
SET
[ EDIT ]
|
[ DEL ]
📄 parse3.c
1,506 B
SET
[ EDIT ]
|
[ DEL ]
📄 parse4.c
3,545 B
SET
[ EDIT ]
|
[ DEL ]
📄 reader1.c
2,530 B
SET
[ EDIT ]
|
[ DEL ]
📄 reader1.res
149 B
SET
[ EDIT ]
|
[ DEL ]
📄 reader2.c
3,133 B
SET
[ EDIT ]
|
[ DEL ]
📄 reader3.c
2,947 B
SET
[ EDIT ]
|
[ DEL ]
📄 reader3.res
360 B
SET
[ EDIT ]
|
[ DEL ]
📄 reader4.c
3,128 B
SET
[ EDIT ]
|
[ DEL ]
📄 reader4.res
72 B
SET
[ EDIT ]
|
[ DEL ]
📄 test1.xml
7 B
SET
[ EDIT ]
|
[ DEL ]
📄 test2.xml
227 B
SET
[ EDIT ]
|
[ DEL ]
📄 test3.xml
833 B
SET
[ EDIT ]
|
[ DEL ]
📄 testWriter.c
38,503 B
SET
[ EDIT ]
|
[ DEL ]
📄 tree1.c
2,245 B
SET
[ EDIT ]
|
[ DEL ]
📄 tree1.res
121 B
SET
[ EDIT ]
|
[ DEL ]
📄 tree2.c
3,415 B
SET
[ EDIT ]
|
[ DEL ]
📄 tree2.res
453 B
SET
[ EDIT ]
|
[ DEL ]
📄 tst.xml
91 B
SET
[ EDIT ]
|
[ DEL ]
📄 writer.xml
544 B
SET
[ EDIT ]
|
[ DEL ]
📄 xpath1.c
6,624 B
SET
[ EDIT ]
|
[ DEL ]
📄 xpath1.res
114 B
SET
[ EDIT ]
|
[ DEL ]
📄 xpath2.c
5,330 B
SET
[ EDIT ]
|
[ DEL ]
📄 xpath2.res
757 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: 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