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

📄 xmllint.c

📁 基于s3c2410芯片的数据采集系统 目标环境:S3C2410芯片、经裁剪后的linux2.6内核、sqlite数据库、cgi库 项目描述:节点端采集数据
💻 C
📖 第 1 页 / 共 5 页
字号:
 * @input:  an xmlParserInputPtr input *  * Displays the associated file and line informations for the current input */static voidxmlHTMLPrintFileInfo(xmlParserInputPtr input) {    int len;    xmlGenericError(xmlGenericErrorContext, "<p>");    len = strlen(buffer);    if (input != NULL) {	if (input->filename) {	    snprintf(&buffer[len], sizeof(buffer) - len, "%s:%d: ", input->filename,		    input->line);	} else {	    snprintf(&buffer[len], sizeof(buffer) - len, "Entity: line %d: ", input->line);	}    }    xmlHTMLEncodeSend();}/** * xmlHTMLPrintFileContext: * @input:  an xmlParserInputPtr input *  * Displays current context within the input content for error tracking */static voidxmlHTMLPrintFileContext(xmlParserInputPtr input) {    const xmlChar *cur, *base;    int len;    int n;    if (input == NULL) return;    xmlGenericError(xmlGenericErrorContext, "<pre>\n");    cur = input->cur;    base = input->base;    while ((cur > base) && ((*cur == '\n') || (*cur == '\r'))) {	cur--;    }    n = 0;    while ((n++ < 80) && (cur > base) && (*cur != '\n') && (*cur != '\r'))        cur--;    if ((*cur == '\n') || (*cur == '\r')) cur++;    base = cur;    n = 0;    while ((*cur != 0) && (*cur != '\n') && (*cur != '\r') && (n < 79)) {	len = strlen(buffer);        snprintf(&buffer[len], sizeof(buffer) - len, "%c", 		    (unsigned char) *cur++);	n++;    }    len = strlen(buffer);    snprintf(&buffer[len], sizeof(buffer) - len, "\n");    cur = input->cur;    while ((*cur == '\n') || (*cur == '\r'))	cur--;    n = 0;    while ((cur != base) && (n++ < 80)) {	len = strlen(buffer);        snprintf(&buffer[len], sizeof(buffer) - len, " ");        base++;    }    len = strlen(buffer);    snprintf(&buffer[len], sizeof(buffer) - len, "^\n");    xmlHTMLEncodeSend();    xmlGenericError(xmlGenericErrorContext, "</pre>");}/** * xmlHTMLError: * @ctx:  an XML parser context * @msg:  the message to display/transmit * @...:  extra parameters for the message display *  * Display and format an error messages, gives file, line, position and * extra parameters. */static void XMLCDECLxmlHTMLError(void *ctx, const char *msg, ...){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlParserInputPtr input;    va_list args;    int len;    buffer[0] = 0;    input = ctxt->input;    if ((input != NULL) && (input->filename == NULL) && (ctxt->inputNr > 1)) {        input = ctxt->inputTab[ctxt->inputNr - 2];    }            xmlHTMLPrintFileInfo(input);    xmlGenericError(xmlGenericErrorContext, "<b>error</b>: ");    va_start(args, msg);    len = strlen(buffer);    vsnprintf(&buffer[len],  sizeof(buffer) - len, msg, args);    va_end(args);    xmlHTMLEncodeSend();    xmlGenericError(xmlGenericErrorContext, "</p>\n");    xmlHTMLPrintFileContext(input);    xmlHTMLEncodeSend();}/** * xmlHTMLWarning: * @ctx:  an XML parser context * @msg:  the message to display/transmit * @...:  extra parameters for the message display *  * Display and format a warning messages, gives file, line, position and * extra parameters. */static void XMLCDECLxmlHTMLWarning(void *ctx, const char *msg, ...){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlParserInputPtr input;    va_list args;    int len;    buffer[0] = 0;    input = ctxt->input;    if ((input != NULL) && (input->filename == NULL) && (ctxt->inputNr > 1)) {        input = ctxt->inputTab[ctxt->inputNr - 2];    }            xmlHTMLPrintFileInfo(input);            xmlGenericError(xmlGenericErrorContext, "<b>warning</b>: ");    va_start(args, msg);    len = strlen(buffer);        vsnprintf(&buffer[len],  sizeof(buffer) - len, msg, args);    va_end(args);    xmlHTMLEncodeSend();    xmlGenericError(xmlGenericErrorContext, "</p>\n");    xmlHTMLPrintFileContext(input);    xmlHTMLEncodeSend();}/** * xmlHTMLValidityError: * @ctx:  an XML parser context * @msg:  the message to display/transmit * @...:  extra parameters for the message display *  * Display and format an validity error messages, gives file, * line, position and extra parameters. */static void XMLCDECLxmlHTMLValidityError(void *ctx, const char *msg, ...){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlParserInputPtr input;    va_list args;    int len;    buffer[0] = 0;    input = ctxt->input;    if ((input->filename == NULL) && (ctxt->inputNr > 1))        input = ctxt->inputTab[ctxt->inputNr - 2];            xmlHTMLPrintFileInfo(input);    xmlGenericError(xmlGenericErrorContext, "<b>validity error</b>: ");    len = strlen(buffer);    va_start(args, msg);    vsnprintf(&buffer[len],  sizeof(buffer) - len, msg, args);    va_end(args);    xmlHTMLEncodeSend();    xmlGenericError(xmlGenericErrorContext, "</p>\n");    xmlHTMLPrintFileContext(input);    xmlHTMLEncodeSend();    progresult = XMLLINT_ERR_VALID;}/** * xmlHTMLValidityWarning: * @ctx:  an XML parser context * @msg:  the message to display/transmit * @...:  extra parameters for the message display *  * Display and format a validity warning messages, gives file, line, * position and extra parameters. */static void XMLCDECLxmlHTMLValidityWarning(void *ctx, const char *msg, ...){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlParserInputPtr input;    va_list args;    int len;    buffer[0] = 0;    input = ctxt->input;    if ((input->filename == NULL) && (ctxt->inputNr > 1))        input = ctxt->inputTab[ctxt->inputNr - 2];    xmlHTMLPrintFileInfo(input);            xmlGenericError(xmlGenericErrorContext, "<b>validity warning</b>: ");    va_start(args, msg);    len = strlen(buffer);     vsnprintf(&buffer[len],  sizeof(buffer) - len, msg, args);    va_end(args);    xmlHTMLEncodeSend();    xmlGenericError(xmlGenericErrorContext, "</p>\n");    xmlHTMLPrintFileContext(input);    xmlHTMLEncodeSend();}/************************************************************************ * 									* * 			Shell Interface					* * 									* ************************************************************************/#ifdef LIBXML_DEBUG_ENABLED#ifdef LIBXML_XPATH_ENABLED/** * xmlShellReadline: * @prompt:  the prompt value * * Read a string *  * Returns a pointer to it or NULL on EOF the caller is expected to *     free the returned string. */static char *xmlShellReadline(char *prompt) {#ifdef HAVE_LIBREADLINE    char *line_read;    /* Get a line from the user. */    line_read = readline (prompt);    /* If the line has any text in it, save it on the history. */    if (line_read && *line_read)	add_history (line_read);    return (line_read);#else    char line_read[501];    char *ret;    int len;    if (prompt != NULL)	fprintf(stdout, "%s", prompt);    if (!fgets(line_read, 500, stdin))        return(NULL);    line_read[500] = 0;    len = strlen(line_read);    ret = (char *) malloc(len + 1);    if (ret != NULL) {	memcpy (ret, line_read, len + 1);    }    return(ret);#endif}#endif /* LIBXML_XPATH_ENABLED */#endif /* LIBXML_DEBUG_ENABLED *//************************************************************************ * 									* * 			I/O Interfaces					* * 									* ************************************************************************/static int myRead(FILE *f, char * buf, int len) {    return(fread(buf, 1, len, f));}static void myClose(FILE *f) {  if (f != stdin) {    fclose(f);  }}/************************************************************************ *									* *		 	SAX based tests					* *									* ************************************************************************//* * empty SAX block */static xmlSAXHandler emptySAXHandlerStruct = {    NULL, /* internalSubset */    NULL, /* isStandalone */    NULL, /* hasInternalSubset */    NULL, /* hasExternalSubset */    NULL, /* resolveEntity */    NULL, /* getEntity */    NULL, /* entityDecl */    NULL, /* notationDecl */    NULL, /* attributeDecl */    NULL, /* elementDecl */    NULL, /* unparsedEntityDecl */    NULL, /* setDocumentLocator */    NULL, /* startDocument */    NULL, /* endDocument */    NULL, /* startElement */    NULL, /* endElement */    NULL, /* reference */    NULL, /* characters */    NULL, /* ignorableWhitespace */    NULL, /* processingInstruction */    NULL, /* comment */    NULL, /* xmlParserWarning */    NULL, /* xmlParserError */    NULL, /* xmlParserError */    NULL, /* getParameterEntity */    NULL, /* cdataBlock; */    NULL, /* externalSubset; */    XML_SAX2_MAGIC,    NULL,    NULL, /* startElementNs */    NULL, /* endElementNs */    NULL  /* xmlStructuredErrorFunc */};static xmlSAXHandlerPtr emptySAXHandler = &emptySAXHandlerStruct;extern xmlSAXHandlerPtr debugSAXHandler;static int callbacks;/** * isStandaloneDebug: * @ctxt:  An XML parser context * * Is this document tagged standalone ? * * Returns 1 if true */static intisStandaloneDebug(void *ctx ATTRIBUTE_UNUSED){    callbacks++;    if (noout)	return(0);    fprintf(stdout, "SAX.isStandalone()\n");    return(0);}/** * hasInternalSubsetDebug: * @ctxt:  An XML parser context * * Does this document has an internal subset * * Returns 1 if true */static inthasInternalSubsetDebug(void *ctx ATTRIBUTE_UNUSED){    callbacks++;    if (noout)	return(0);    fprintf(stdout, "SAX.hasInternalSubset()\n");    return(0);}/** * hasExternalSubsetDebug: * @ctxt:  An XML parser context * * Does this document has an external subset * * Returns 1 if true */static inthasExternalSubsetDebug(void *ctx ATTRIBUTE_UNUSED){    callbacks++;    if (noout)	return(0);    fprintf(stdout, "SAX.hasExternalSubset()\n");    return(0);}/** * internalSubsetDebug: * @ctxt:  An XML parser context * * Does this document has an internal subset */static voidinternalSubsetDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name,	       const xmlChar *ExternalID, const xmlChar *SystemID){    callbacks++;    if (noout)	return;    fprintf(stdout, "SAX.internalSubset(%s,", name);    if (ExternalID == NULL)	fprintf(stdout, " ,");    else	fprintf(stdout, " %s,", ExternalID);    if (SystemID == NULL)	fprintf(stdout, " )\n");    else	fprintf(stdout, " %s)\n", SystemID);}/** * externalSubsetDebug: * @ctxt:  An XML parser context * * Does this document has an external subset */static voidexternalSubsetDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name,	       const xmlChar *ExternalID, const xmlChar *SystemID){    callbacks++;    if (noout)	return;    fprintf(stdout, "SAX.externalSubset(%s,", name);    if (ExternalID == NULL)	fprintf(stdout, " ,");    else	fprintf(stdout, " %s,", ExternalID);    if (SystemID == NULL)	fprintf(stdout, " )\n");    else	fprintf(stdout, " %s)\n", SystemID);}/** * resolveEntityDebug: * @ctxt:  An XML parser context * @publicId: The public ID of the entity * @systemId: The system ID of the entity * * Special entity resolver, better left to the parser, it has * more context than the application layer. * The default behaviour is to NOT resolve the entities, in that case * the ENTITY_REF nodes are built in the structure (and the parameter * values). * * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour. */static xmlParserInputPtrresolveEntityDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *publicId, const xmlChar *systemId){    callbacks++;    if (noout)	return(NULL);    /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */        fprintf(stdout, "SAX.resolveEntity(");    if (publicId != NULL)	fprintf(stdout, "%s", (char *)publicId);    else	fprintf(stdout, " ");    if (systemId != NULL)	fprintf(stdout, ", %s)\n", (char *)systemId);    else	fprintf(stdout, ", )\n");    return(NULL);}/** * getEntityDebug: * @ctxt:  An XML parser context * @name: The entity name * * Get an entity by name * * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour. */static xmlEntityPtrgetEntityDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name){    callbacks++;    if (noout)	return(NULL);    fprintf(stdout, "SAX.getEntity(%s)\n", name);    return(NULL);}/** * getParameterEntityDebug: * @ctxt:  An XML parser context * @name: The entity name * * Get a parameter entity by name * * Returns the xmlParserInputPtr */static xmlEntityPtrgetParameterEntityDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name){    callbacks++;    if (noout)	return(NULL);    fprintf(stdout, "SAX.getParameterEntity(%s)\n", name);    return(NULL);}/** * entityDeclDebug: * @ctxt:  An XML parser context * @name:  the entity name  * @type:  the entity type  * @publicId: The public ID of the entity * @systemId: The system ID of the entity * @content: the entity value (without processing). * * An entity definition has been parsed */static voidentityDeclDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name, int type,          const xmlChar *publicId, const xmlChar *systemId, xmlChar *content){const xmlChar *nullstr = BAD_CAST "(null)";    /* not all libraries handle printing null pointers nicely */    if (publicId == NULL)        publicId = nullstr;    if (systemId == NULL)        systemId = nullstr;    if (content == NULL)        content = (xmlChar *)nullstr;    callbacks++;    if (noout)	return;    fprintf(stdout, "SAX.entityDecl(%s, %d, %s, %s, %s)\n",            name, type, publicId, systemId, content);}/** * attributeDeclDebug: * @ctxt:  An XML parser context * @name:  the attribute name  * @type:  the attribute type  *

⌨️ 快捷键说明

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