X7ROOT File Manager
Current Path:
/opt/alt/libxml2/usr/share/doc/alt-libxml2-devel/examples
opt
/
alt
/
libxml2
/
usr
/
share
/
doc
/
alt-libxml2-devel
/
examples
/
ðŸ“
..
ðŸ“
.libs
📄
.memdump
(1 B)
📄
Makefile
(30.11 KB)
📄
Makefile.am
(3.11 KB)
📄
Makefile.in
(31.11 KB)
📄
examples.xml
(31.66 KB)
📄
examples.xsl
(4.51 KB)
📄
index.html
(38.71 KB)
📄
index.py
(8.95 KB)
📄
io1
(7.71 KB)
📄
io1.c
(3.67 KB)
📄
io1.o
(30.64 KB)
📄
io2
(7.71 KB)
📄
io2.c
(1.17 KB)
📄
io2.o
(22.04 KB)
📄
parse1
(7.74 KB)
📄
parse1.c
(1.27 KB)
📄
parse1.o
(22.02 KB)
📄
parse2
(7.74 KB)
📄
parse2.c
(1.92 KB)
📄
parse2.o
(43.21 KB)
📄
parse3
(7.74 KB)
📄
parse3.c
(1.47 KB)
📄
parse3.o
(22.02 KB)
📄
parse4
(7.74 KB)
📄
parse4.c
(3.46 KB)
📄
parse4.o
(47.55 KB)
📄
reader1
(7.75 KB)
📄
reader1.c
(2.47 KB)
📄
reader1.o
(24.03 KB)
📄
reader2
(7.75 KB)
📄
reader2.c
(3.06 KB)
📄
reader2.o
(25.97 KB)
📄
reader3
(7.75 KB)
📄
reader3.c
(2.88 KB)
📄
reader3.o
(26.9 KB)
📄
reader4
(7.75 KB)
📄
reader4.c
(3.06 KB)
📄
reader4.o
(29.63 KB)
📄
test1.xml
(7 B)
📄
test2.xml
(227 B)
📄
test3.xml
(833 B)
📄
testWriter
(7.79 KB)
📄
testWriter.c
(37.6 KB)
📄
testWriter.o
(105.34 KB)
📄
tree1
(7.73 KB)
📄
tree1.c
(2.19 KB)
📄
tree1.o
(24.31 KB)
📄
tree2
(7.73 KB)
📄
tree2.c
(3.37 KB)
📄
tree2.o
(29.45 KB)
📄
xpath1
(7.74 KB)
📄
xpath1.c
(6.47 KB)
📄
xpath1.o
(58.59 KB)
📄
xpath2
(7.74 KB)
📄
xpath2.c
(5.21 KB)
📄
xpath2.o
(40.76 KB)
Editing: 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"); return(0); } #endif
Upload File
Create Folder