⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reader1.c

📁 linux libxml 实例
💻 C
字号:
/** * 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 <filename> * test: reader1 test2.xml > reader1.tmp ; diff reader1.tmp reader1.res ; rm reader1.tmp * author: Daniel Veillard * copy: see Copyright for the status of this software. */#include <stdio.h>#include <libxml/xmlreader.h>#ifdef LIBXML_READER_ENABLED/** * processNode: * @reader: the xmlReader * * Dump information about the current node */static voidprocessNode(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 voidstreamFile(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);}#elseint main(void) {    fprintf(stderr, "XInclude support not compiled in\n");    exit(1);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -