Linux sagir-us1.hostever.us 5.14.0-570.51.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 8 09:41:34 EDT 2025 x86_64
LiteSpeed
Server IP : 104.247.108.91 & Your IP : 216.73.216.26
Domains : 74 Domain
User : georgeto
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
local /
apps /
share /
doc /
libxml2-2.9.0 /
html /
Delete
Unzip
Name
Size
Permission
Date
Action
html
[ DIR ]
drwxr-xr-x
2021-03-26 11:36
tutorial
[ DIR ]
drwxr-xr-x
2021-03-26 11:36
DOM.gif
3.09
KB
-rw-r--r--
2021-03-26 11:36
FAQ.html
20.57
KB
-rw-r--r--
2021-03-26 11:36
Libxml2-Logo-180x168.gif
8
KB
-rw-r--r--
2021-03-26 11:36
Libxml2-Logo-90x34.gif
3
KB
-rw-r--r--
2021-03-26 11:36
encoding.html
18.93
KB
-rw-r--r--
2021-03-26 11:36
examples.xml
31.41
KB
-rw-r--r--
2021-03-26 11:36
examples.xsl
7.06
KB
-rw-r--r--
2021-03-26 11:36
index.html
32.15
KB
-rw-r--r--
2021-03-26 11:36
io1.c
3.67
KB
-rw-r--r--
2021-03-26 11:36
io1.res
206
B
-rw-r--r--
2021-03-26 11:36
io2.c
1.15
KB
-rw-r--r--
2021-03-26 11:36
io2.res
43
B
-rw-r--r--
2021-03-26 11:36
libxml.gif
7.51
KB
-rw-r--r--
2021-03-26 11:36
parse1.c
1.27
KB
-rw-r--r--
2021-03-26 11:36
parse2.c
1.92
KB
-rw-r--r--
2021-03-26 11:36
parse3.c
1.47
KB
-rw-r--r--
2021-03-26 11:36
parse4.c
3.46
KB
-rw-r--r--
2021-03-26 11:36
reader1.c
2.47
KB
-rw-r--r--
2021-03-26 11:36
reader1.res
149
B
-rw-r--r--
2021-03-26 11:36
reader2.c
3.06
KB
-rw-r--r--
2021-03-26 11:36
reader3.c
2.88
KB
-rw-r--r--
2021-03-26 11:36
reader3.res
360
B
-rw-r--r--
2021-03-26 11:36
reader4.c
3.05
KB
-rw-r--r--
2021-03-26 11:36
reader4.res
72
B
-rw-r--r--
2021-03-26 11:36
redhat.gif
697
B
-rw-r--r--
2021-03-26 11:36
smallfootonly.gif
2.71
KB
-rw-r--r--
2021-03-26 11:36
structure.gif
5.43
KB
-rw-r--r--
2021-03-26 11:36
test1.xml
7
B
-rw-r--r--
2021-03-26 11:36
test2.xml
227
B
-rw-r--r--
2021-03-26 11:36
test3.xml
833
B
-rw-r--r--
2021-03-26 11:36
testWriter.c
37.51
KB
-rw-r--r--
2021-03-26 11:36
tree1.c
2.19
KB
-rw-r--r--
2021-03-26 11:36
tree1.res
121
B
-rw-r--r--
2021-03-26 11:36
tree2.c
3.39
KB
-rw-r--r--
2021-03-26 11:36
tree2.res
453
B
-rw-r--r--
2021-03-26 11:36
tst.xml
91
B
-rw-r--r--
2021-03-26 11:36
w3c.png
1.98
KB
-rw-r--r--
2021-03-26 11:36
writer.xml
544
B
-rw-r--r--
2021-03-26 11:36
xml.html
264.82
KB
-rw-r--r--
2021-03-26 11:36
xpath1.c
6.47
KB
-rw-r--r--
2021-03-26 11:36
xpath1.res
114
B
-rw-r--r--
2021-03-26 11:36
xpath2.c
5.21
KB
-rw-r--r--
2021-03-26 11:36
xpath2.res
757
B
-rw-r--r--
2021-03-26 11:36
Save
Rename
/** * 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