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

📄 reader2.c

📁 基于s3c2410芯片的数据采集系统 目标环境:S3C2410芯片、经裁剪后的linux2.6内核、sqlite数据库、cgi库 项目描述:节点端采集数据
💻 C
字号:
/** * section: xmlReader * synopsis: Parse and validate an XML file with an xmlReader * purpose: Demonstrate the use of xmlReaderForFile() to parse an XML file *          validating the content in the process and activating options *          like entities substitution, and DTD attributes defaulting. *          (Note that the XMLReader functions require libxml2 version later *          than 2.6.) * usage: reader2 <valid_xml_filename> * test: reader2 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, validate and print information about an XML file. */static voidstreamFile(const char *filename) {    xmlTextReaderPtr reader;    int ret;    /*     * Pass some special parsing options to activate DTD attribute defaulting,     * entities substitution and DTD validation     */    reader = xmlReaderForFile(filename, NULL,                 XML_PARSE_DTDATTR |  /* default DTD attributes */		 XML_PARSE_NOENT |    /* substitute entities */		 XML_PARSE_DTDVALID); /* validate with the DTD */    if (reader != NULL) {        ret = xmlTextReaderRead(reader);        while (ret == 1) {            processNode(reader);            ret = xmlTextReaderRead(reader);        }	/*	 * Once the document has been fully parsed check the validation results	 */	if (xmlTextReaderIsValid(reader) != 1) {	    fprintf(stderr, "Document %s does not validate\n", filename);	}        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 + -