/usr/share/doc/libxml2-devel/examples
NameSizeModeActions
examples.xml321570644editdlrm
examples.xsl72320644editdlrm
index.html329200644editdlrm
index.py92090644editdlrm
io1.c37530644editdlrm
io1.res1650644editdlrm
io2.c11820644editdlrm
io2.res430644editdlrm
Makefile.am40930644editdlrm
Makefile.in333090644editdlrm
parse1.c13000644editdlrm
parse2.c19670644editdlrm
parse3.c15060644editdlrm
parse4.c35450644editdlrm
reader1.c25300644editdlrm
reader1.res1490644editdlrm
reader2.c31330644editdlrm
reader3.c29470644editdlrm
reader3.res3600644editdlrm
reader4.c31280644editdlrm
reader4.res720644editdlrm
test1.xml70644editdlrm
test2.xml2270644editdlrm
test3.xml8330644editdlrm
testWriter.c385030644editdlrm
tree1.c22450644editdlrm
tree1.res1210644editdlrm
tree2.c34150644editdlrm
tree2.res4530644editdlrm
tst.xml910644editdlrm
writer.xml5440644editdlrm
xpath1.c66240644editdlrm
xpath1.res1140644editdlrm
xpath2.c53300644editdlrm
xpath2.res7570644editdlrm
Edit: /usr/share/doc/libxml2-devel/examples/reader1.c (2530B)
/** * section: xmlReader * synopsis: Parse an XML file with an xmlReader * purpose: Demonstrate the use of xmlReaderForFile() to parse an XML file * and dump the informations about the nodes found in the process. * (Note that the XMLReader functions require libxml2 version later * than 2.6.) * usage: reader1 * test: reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res * author: Daniel Veillard * copy: see Copyright for the status of this software. */ #include #include #ifdef LIBXML_READER_ENABLED /** * processNode: * @reader: the xmlReader * * Dump information about the current node */ static void processNode(xmlTextReaderPtr reader) { const xmlChar *name, *value; name = xmlTextReaderConstName(reader); if (name == NULL) name = BAD_CAST "--"; value = xmlTextReaderConstValue(reader); printf("%d %d %s %d %d", xmlTextReaderDepth(reader), xmlTextReaderNodeType(reader), name, xmlTextReaderIsEmptyElement(reader), xmlTextReaderHasValue(reader)); if (value == NULL) printf("\n"); else { if (xmlStrlen(value) > 40) printf(" %.40s...\n", value); else printf(" %s\n", value); } } /** * streamFile: * @filename: the file name to parse * * Parse and print information about an XML file. */ static void streamFile(const char *filename) { xmlTextReaderPtr reader; int ret; reader = xmlReaderForFile(filename, NULL, 0); if (reader != NULL) { ret = xmlTextReaderRead(reader); while (ret == 1) { processNode(reader); ret = xmlTextReaderRead(reader); } xmlFreeTextReader(reader); if (ret != 0) { fprintf(stderr, "%s : failed to parse\n", filename); } } else { fprintf(stderr, "Unable to open %s\n", filename); } } int main(int argc, char **argv) { if (argc != 2) return(1); /* * 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 streamFile(argv[1]); /* * 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