您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ xmlFreeParserCtxt函数代码示例

51自学网 2021-06-03 11:45:37
  C++
这篇教程C++ xmlFreeParserCtxt函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中xmlFreeParserCtxt函数的典型用法代码示例。如果您正苦于以下问题:C++ xmlFreeParserCtxt函数的具体用法?C++ xmlFreeParserCtxt怎么用?C++ xmlFreeParserCtxt使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了xmlFreeParserCtxt函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: xmlNewParserCtxt

bool CSpmXml::LoadXML(const QString& strXML, bool bDTDValidation){	xmlParserCtxtPtr pXMLParser = xmlNewParserCtxt();	if (0 == pXMLParser)		return false;	int nOptions = XML_PARSE_NOBLANKS;	if (bDTDValidation)		nOptions |= XML_PARSE_DTDVALID;	m_pXMLDoc = xmlCtxtReadDoc(pXMLParser, (xmlChar*)strXML.toUtf8().data(), "", NULL, nOptions);	if (0 == m_pXMLDoc)	{		xmlFreeParserCtxt(pXMLParser);		return false;	}	// Проверка корректности структуры	if (bDTDValidation && (false == pXMLParser->valid))	{		xmlFreeParserCtxt(pXMLParser);		return false;	}	m_pCurNode = xmlDocGetRootElement(m_pXMLDoc);	if (0 == m_pCurNode)		return false;	SetModified(false);	xmlFreeParserCtxt(pXMLParser);	return true;}
开发者ID:smurav,项目名称:gis36,代码行数:33,


示例2: xmlKeepBlanksDefault

	XDocument* XParser::ParseMemory(const char* content, bool keep_blank/*=false*/)	{		xmlParserCtxtPtr pxParseCtxt = NULL;		xmlKeepBlanksDefault(keep_blank?1:0);		xmlDoValidityCheckingDefaultValue =0;		pxParseCtxt = xmlCreateMemoryParserCtxt((const char*)content, strlen(content));		if(pxParseCtxt==NULL)		{			return NULL;		}		if(!ParseContext(pxParseCtxt))		{			xmlFreeParserCtxt(pxParseCtxt);			return NULL;		}		XDocument* pagXmlDoc = NULL;		pagXmlDoc = new XDocument(pxParseCtxt->myDoc);		xmlFreeParserCtxt(pxParseCtxt);		return pagXmlDoc;	}
开发者ID:marsprj,项目名称:Auge.GIS,代码行数:25,


示例3: xmlNewParserCtxt

void Vpz::validateFile(const std::string& filename){    xmlParserCtxtPtr ctxt;    xmlDocPtr doc;    ctxt = xmlNewParserCtxt();    if (ctxt == NULL) {        throw utils::SaxParserError(_("Failed to allocate parser context/n"));    }    doc = xmlCtxtReadFile(ctxt, filename.c_str(), NULL, XML_PARSE_DTDVALID);    if (not doc) {        std::string msg((fmt(_("Failed to parse '%1%': %2%")) % filename %                         (ctxt->lastError.message ? ctxt->lastError.message :                          "")).str());        xmlFreeParserCtxt(ctxt);        throw utils::SaxParserError(msg);    }    if (ctxt->valid == 0) {        std::string msg((fmt(_("Failed to validate '%1%': %2%")) % filename %                         (ctxt->lastError.message ? ctxt->lastError.message :                          "")).str());        xmlFreeDoc(doc);        xmlFreeParserCtxt(ctxt);        throw utils::SaxParserError(msg);    }    xmlFreeParserCtxt(ctxt);}
开发者ID:SJasson,项目名称:vle,代码行数:33,


示例4: FreeXMLDocument

bool MainWindow::OpenXMLDocument(const QString &file_name) {  FreeXMLDocument();  xmlParserCtxtPtr parser = xmlNewParserCtxt();  if (0 == parser)    return false;  xml_doc_ptr_ = xmlCtxtReadFile(parser,                                 file_name.toLocal8Bit().data(),                                 NULL,                                 XML_PARSE_NOBLANKS);// | XML_PARSE_DTDVALID);  if (false == parser->valid) {    QMessageBox::critical(this, tr("Открытие XML документа"),                          tr("Структура файла %1 не соответствует "                          "DTD-диаграмме").arg(file_name),                          QMessageBox::Ok);    SetCurrentFileName("", false);    xmlFreeParserCtxt(parser);    FreeXMLDocument();    return false;  }  AddItem(xmlDocGetRootElement(xml_doc_ptr_));  xmlFreeParserCtxt(parser);  UpdateButtons();  return true;}
开发者ID:smurav,项目名称:xml36,代码行数:26,


示例5: _multipart_parse_init

static dpl_status_t_multipart_parse_init(const dpl_ctx_t *ctx,                      const char *buf, int len,                      const char **uploadidp){    dpl_status_t          ret = DPL_SUCCESS;    xmlParserCtxtPtr      ctxt;    xmlDocPtr             doc;    xmlNode               *elem;    ctxt = xmlNewParserCtxt();    if (ctxt == NULL)        return DPL_FAILURE;    doc = xmlCtxtReadMemory(ctxt, buf, len, NULL, NULL, 0u);    if (doc == NULL) {        xmlFreeParserCtxt(ctxt);        return DPL_FAILURE;    }    elem = xmlDocGetRootElement(doc);    while (elem != NULL)    {        if (elem->type == XML_ELEMENT_NODE)        {            if (!strcmp((char *) elem->name, "InitiateMultipartUploadResult"))            {                elem = elem->children;                ret = DPL_FAILURE;                while (elem != NULL)                {                    if (elem->type == XML_ELEMENT_NODE)                    {                        if (!strcmp((char *) elem->name, "UploadId"))                        {                            ret = DPL_SUCCESS;                            *uploadidp = strdup((char *) elem->children->content);                            if (NULL == *uploadidp)                                ret = DPL_ENOMEM;                            break;                        }                    }                    elem = elem->next;                }                // Reaching here means that we already browsed                // the InitiateMultipartUploadResult xml subtree,                // whether we found UploadId or not.                break;            }        }        elem = elem->next;    }    xmlFreeDoc(doc);    xmlFreeParserCtxt(ctxt);    return ret;}
开发者ID:neverstoplwy,项目名称:Droplet,代码行数:58,


示例6: mxslt_doc_xml_load_entity

  /* Taken from libxml2, xmlSAXParseMemoryWithData */xmlDocPtr mxslt_doc_xml_load_entity(mxslt_doc_t * document, char * localfile) {  xmlParserCtxtPtr ctx;  xmlParserInputPtr input;  xmlDocPtr retval;  xmlChar * filename;  mxslt_doc_debug_print(document, MXSLT_DBG_LIBXML | MXSLT_DBG_DEBUG | MXSLT_DBG_VERBOSE0,		"load_entity/xmlCreateMemoryParserCtxt -- replacing entities: %08x/n", xmlSubstituteEntitiesDefaultValue);    /* SNIPPET: This is a good mix&shake of      * xmlCreateMemoryParserCtxt, xmlCreateFileParserCtxt */  ctx=xmlNewParserCtxt();  if(ctx == NULL)    return NULL;#if LIBXML_VERSION >= 20600  xmlCtxtUseOptions(ctx, MXSLT_XSLT_OPTIONS);#endif    /* Remember which document we are parsing     * in this context */  /* ctx->_private=document; */  filename=xmlCanonicPath((xmlChar *)localfile);  if(filename == NULL) {    xmlFreeParserCtxt(ctx);    return NULL;  }    input=xmlLoadExternalEntity((char *)filename, NULL, ctx);  xmlFree(filename);  if(input == NULL) {    xmlFreeParserCtxt(ctx);    return NULL;  }  inputPush(ctx, input);  if(ctx->directory == NULL)    ctx->directory=xmlParserGetDirectory(localfile);    /* END SNIPPET */  /* MXSLT_DUMP_CTX(ctx); */    /* Parse document */  xmlParseDocument(ctx);  if(ctx->wellFormed)    retval=ctx->myDoc;  else {    retval=NULL;    xmlFreeDoc(ctx->myDoc);    ctx->myDoc=NULL;  }  xmlFreeParserCtxt(ctx);  return retval;}
开发者ID:ccontavalli,项目名称:mod-xslt,代码行数:59,


示例7: xmms_xspf_browse

static gbooleanxmms_xspf_browse (xmms_xform_t *xform, const gchar *url, xmms_error_t *error){	int ret;	char buf[4096];	xmlParserCtxtPtr ctx;	xmlDocPtr doc;	g_return_val_if_fail (xform, FALSE);	xmms_error_reset (error);	ctx = xmlCreatePushParserCtxt (NULL, NULL, buf, 0, NULL);	if (!ctx) {		xmms_error_set (error, XMMS_ERROR_OOM, "Could not allocate xml parser");		return FALSE;	}	while ((ret = xmms_xform_read (xform, buf, sizeof (buf), error)) > 0) {		if ((xmlParseChunk (ctx, buf, ret, 0)) != 0) {			break;		}	}	if (ret < 0) {		xmms_error_set (error, XMMS_ERROR_GENERIC,		                "failed to read data from previous xform");		xmlFreeParserCtxt (ctx);		return FALSE;	}	xmlParseChunk (ctx, buf, 0, 1);	if (ctx->lastError.message) {		xmms_error_set (error, XMMS_ERROR_INVAL, ctx->lastError.message);		xmlFreeParserCtxt (ctx);		return FALSE;	}	doc = ctx->myDoc;	if (!xmms_xspf_browse_add_entries (xform, doc, error)) {		xmlFreeParserCtxt (ctx);		return FALSE;	}	xmms_error_reset (error);	xmlFreeParserCtxt (ctx);	return TRUE;}
开发者ID:eggpi,项目名称:xmms2-guilherme,代码行数:52,


示例8: chatroom_manager_file_parse

static gbooleanchatroom_manager_file_parse (EmpathyChatroomManager *manager,    const gchar *filename){  EmpathyChatroomManagerPriv *priv;  xmlParserCtxtPtr ctxt;  xmlDocPtr doc;  xmlNodePtr chatrooms;  xmlNodePtr node;  priv = GET_PRIV (manager);  DEBUG ("Attempting to parse file:'%s'...", filename);  ctxt = xmlNewParserCtxt ();  /* Parse and validate the file. */  doc = xmlCtxtReadFile (ctxt, filename, NULL, 0);  if (doc == NULL)    {      g_warning ("Failed to parse file:'%s'", filename);      xmlFreeParserCtxt (ctxt);      return FALSE;    }  if (!empathy_xml_validate (doc, CHATROOMS_DTD_FILENAME))    {      g_warning ("Failed to validate file:'%s'", filename);      xmlFreeDoc (doc);      xmlFreeParserCtxt (ctxt);      return FALSE;    }  /* The root node, chatrooms. */  chatrooms = xmlDocGetRootElement (doc);  for (node = chatrooms->children; node; node = node->next)    {      if (strcmp ((gchar *) node->name, "chatroom") == 0)        chatroom_manager_parse_chatroom (manager, node);    }  DEBUG ("Parsed %d chatrooms", g_list_length (priv->chatrooms));  xmlFreeDoc (doc);  xmlFreeParserCtxt (ctxt);  return TRUE;}
开发者ID:DylanMcCall,项目名称:Empathy---Hide-contact-groups,代码行数:49,


示例9: xmlNewParserCtxt

rss_file *rss_open_file(const char *filename){  xmlParserCtxtPtr ctxt;  xmlDocPtr doc;  rss_file *f;  xmlNode *root_element = NULL;  gchar *fetched_time;  ctxt = xmlNewParserCtxt();  ctxt->sax->getEntity = _get_entity;  doc = xmlSAXParseFile(ctxt->sax, filename, 0);  if (!doc) {    fprintf(stderr, "Error parsing RSS file %s./n", filename);    xmlFreeParserCtxt(ctxt);    return NULL;  }  root_element = xmlDocGetRootElement(doc);  if (!root_element)  {    xmlFreeDoc(doc);    xmlFreeParserCtxt(ctxt);    fprintf(stderr, "Error parsing RSS file %s./n", filename);    return NULL;  }  /* Establish the time the RSS file was 'fetched'. */  fetched_time = get_rfc822_time();  if (!fetched_time) {    xmlFreeDoc(doc);    xmlFreeParserCtxt(ctxt);    g_fprintf(stderr, "Error retrieving current time./n");    return NULL;  }  f = rss_parse(filename, root_element, fetched_time);  xmlFreeDoc(doc);  xmlFreeParserCtxt(ctxt);  g_free(fetched_time);  return f;}
开发者ID:beodegit,项目名称:castget,代码行数:48,


示例10: initGenericErrorDefaultFunc

bool XMLReader::isValid(const QString &_inFile){    LIBXML_TEST_VERSION    //reset the generic error handler    initGenericErrorDefaultFunc(NULL);    QString ErrorString;    //supply custom error handler    xmlSetStructuredErrorFunc(&ErrorString, XMLReader::xmlErrorHandler);    xmlParserCtxtPtr Context; /* the parser context */    xmlDocPtr Doc; /* the resulting document tree */    /* create a parser context */    Context = xmlNewParserCtxt();    if (Context == NULL)      throw exInvalidXML("Failed to allocate parser context");    QFile File(_inFile);    File.open(QIODevice::ReadOnly);    int FD = File.handle();    /* parse the file, activating the DTD validation option */    Doc = xmlCtxtReadFd(Context, FD, ".", NULL, XML_PARSE_DTDVALID);    /* check if parsing suceeded */    if (Doc == NULL)        throw exInvalidXML("Unable to read XML Buffer");    else      xmlFreeDoc(Doc);    /* free up the parser context */    xmlFreeParserCtxt(Context);    return true;}
开发者ID:Targoman,项目名称:Source,代码行数:34,


示例11: initContext

xmlDoc *XMLDocument::readDocument(const std::string & xmlCode, const char * encoding, bool validate, std::string * error){    xmlParserCtxt *ctxt = initContext(error, validate);    xmlDoc *doc = 0;    int options = XML_PARSE_NSCLEAN | XML_PARSE_NOBLANKS;    if (validate)    {        options |= XML_PARSE_DTDVALID;    }    if (!ctxt)    {        xmlSetGenericErrorFunc(0, errorFunctionWithoutOutput);        return 0;    }    doc = xmlCtxtReadDoc(ctxt, (const xmlChar *)xmlCode.c_str(), 0, encoding, options);    if (!doc || !ctxt->valid)    {        *error = errorBuffer;    }    xmlSetGenericErrorFunc(0, errorFunctionWithoutOutput);    xmlFreeParserCtxt(ctxt);    return doc;}
开发者ID:ScilabOrg,项目名称:scilab,代码行数:28,


示例12: result

/**  * Parses a descriptor that contains the last  part of a document.  */void CXMLEngineSAXPlugin::ParseLastChunkL(const TDesC8& /*aDescriptor*/)	{	if (!iParserContext)		{		User::Leave(EXmlParserError);		}	//parsing process	TInt result(KErrNone);	result = xmlParseChunk(iParserContext, NULL, 0, 1);	if ((result == XML_ERR_NO_MEMORY) || (iParserContext->lastError.level == XML_ERR_FATAL)	        || (result < 0))		{		CleanupAndLeaveL(GetErrorNum(result));					}						//releasing context to the parser    xmlParserCtxtPtr ctxt = reinterpret_cast<xmlParserCtxtPtr>(iParserContext);    if(ctxt->myDoc)                            {       xmlFreeDoc(ctxt->myDoc);        }    xmlFreeParserCtxt(ctxt);	iParserContext = NULL;			}
开发者ID:cdaffara,项目名称:symbiandump-os2,代码行数:29,


示例13: xmlFreeParserCtxt

 ~libxml2_loader() {     if (ctx_)     {         xmlFreeParserCtxt(ctx_);     } }
开发者ID:mayfourth,项目名称:mapnik,代码行数:7,


示例14: main

int main(int argc, char **argv) {  xmlParserCtxtPtr ctxt;  xmlsatParseState state;  if (argc<2) {    printf("Usage: %s [-fta] filename.xmlsat/n",argv[0]);  } else {    if (argc==2) {      ctxt = (xmlParserCtxtPtr)xmlCreateFileParserCtxt(argv[1]);    } else if (argc==3) {      if (strcmp(argv[1],"-fta")==0) {        fta=1;      }      ctxt = (xmlParserCtxtPtr)xmlCreateFileParserCtxt(argv[2]);    }    if (ctxt == NULL) {      fprintf(stderr,"ERROR: can not open file/n");    }    ctxt->sax = &xmlsatSAXParser;    ctxt->userData = &state;    xmlParseDocument(ctxt);    ctxt->sax = NULL;    xmlFreeParserCtxt(ctxt);  }  return 0;}
开发者ID:Miasma87,项目名称:dvbtools,代码行数:29,


示例15: rxml_parser_context_io

/* call-seq: *    XML::Parser::Context.io(io) -> XML::Parser::Context * * Creates a new parser context based on the specified io object. * * Parameters: * *  io - A ruby IO object.*/static VALUE rxml_parser_context_io(VALUE klass, VALUE io){  xmlParserCtxtPtr ctxt;  xmlParserInputBufferPtr input;  xmlParserInputPtr stream;  input = xmlParserInputBufferCreateIO((xmlInputReadCallback) rxml_read_callback, NULL,                                       (void*)io, XML_CHAR_ENCODING_NONE);      ctxt = xmlNewParserCtxt();  if (!ctxt)  {    xmlFreeParserInputBuffer(input);    rxml_raise(&xmlLastError);  }  stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);  if (!stream)  {    xmlFreeParserInputBuffer(input);    xmlFreeParserCtxt(ctxt);    rxml_raise(&xmlLastError);  }  inputPush(ctxt, stream);  return rxml_parser_context_wrap(ctxt);}
开发者ID:boudejo,项目名称:lookatrails,代码行数:36,


示例16: xmlResetOOM

void CXMLEngineSAXPlugin::CleanupAndLeaveL(TInt aError)	{	// reseting OOM flag	if((aError == KErrNoMemory) && xmlOOMFlag())	    {	    xmlResetOOM();	    }	//releasing context to the parser	if(iParserContext)	    {	            xmlParserCtxtPtr ctxt = reinterpret_cast<xmlParserCtxtPtr>(iParserContext);        if(ctxt->myDoc)                                 {            xmlFreeDoc(ctxt->myDoc);             }        xmlFreeParserCtxt(ctxt);			    }    iParserContext = NULL;		if (aError)		{		User::Leave(aError);					}	else		{		User::Leave(EXmlParserError);		}	}
开发者ID:cdaffara,项目名称:symbiandump-os2,代码行数:29,


示例17: e_soap_message_parse_response

/** * e_soap_message_parse_response: * @msg: the #ESoapMessage. * * Parses the response returned by the server. * * Returns: a #ESoapResponse representing the response from * the server, or %NULL if there was an error. * * Since: 2.92 */ESoapResponse *e_soap_message_parse_response (ESoapMessage *msg){	ESoapMessagePrivate *priv;	xmlDocPtr xmldoc;	g_return_val_if_fail (E_IS_SOAP_MESSAGE (msg), NULL);	priv = E_SOAP_MESSAGE_GET_PRIVATE (msg);	if (!priv->ctxt)		return NULL;	xmlParseChunk (priv->ctxt, 0, 0, 1);	xmldoc = priv->ctxt->myDoc;	xmlFreeParserCtxt (priv->ctxt);	priv->ctxt = NULL;	if (!xmldoc)		return NULL;	return e_soap_response_new_from_xmldoc (xmldoc);}
开发者ID:tivv,项目名称:evolution-ews,代码行数:36,


示例18: lj_entry_load_from_xml

static gbooleanlj_entry_load_from_xml(LJEntry *entry, const char *data, int len, GError **err) {	xmlNodePtr cur;	xmlDocPtr  doc = NULL;	xmlParserCtxtPtr ctxt;	ctxt = xmlCreatePushParserCtxt(NULL, NULL,				data, 4,				NULL /* XXX why does this want a filename? */);	/* suppress error messages */	ctxt->sax->warning = NULL;	ctxt->sax->error   = NULL;	xmlParseChunk(ctxt, data+4, len-4, 0);	xmlParseChunk(ctxt, data, 0, 1);	if (!ctxt->errNo)		doc = ctxt->myDoc;	xmlFreeParserCtxt(ctxt);	if (!doc) {		/* XXX better error message. */		g_set_error(err, 0, 0, "Error parsing XML");		return FALSE;	}	cur = xmlDocGetRootElement(doc);	lj_entry_load_from_xml_node(entry, doc, cur);	xmlFreeDoc(doc);	return TRUE;}
开发者ID:spotrh,项目名称:LogJam,代码行数:31,


示例19: xml_complete

/** * Finalise XML parsing. */int xml_complete(modsec_rec *msr, char **error_msg) {    if (error_msg == NULL) return -1;    *error_msg = NULL;    /* Only if we have a context, meaning we've done some work. */    if (msr->xml->parsing_ctx != NULL) {        /* This is how we signalise the end of parsing to libxml. */        xmlParseChunk(msr->xml->parsing_ctx, NULL, 0, 1);        /* Preserve the results for our reference. */        msr->xml->well_formed = msr->xml->parsing_ctx->wellFormed;        msr->xml->doc = msr->xml->parsing_ctx->myDoc;        /* Clean up everything else. */        xmlFreeParserCtxt(msr->xml->parsing_ctx);        msr->xml->parsing_ctx = NULL;        msr_log(msr, 4, "XML: Parsing complete (well_formed %u).", msr->xml->well_formed);        if (msr->xml->well_formed != 1) {            *error_msg = ngx_pstrndup(msr->mp, "XML: Failed parsing document.");            return -1;        }    }    return 1;}
开发者ID:shajf,项目名称:WSEngine,代码行数:29,


示例20: finalize

static voidfinalize (GObject *object){	ESoapMessagePrivate *priv = E_SOAP_MESSAGE_GET_PRIVATE (object);	if (priv->ctxt) {		if (priv->ctxt->myDoc)			xmlFreeDoc (priv->ctxt->myDoc);		xmlFreeParserCtxt (priv->ctxt);	}	if (priv->doc)		xmlFreeDoc (priv->doc);	if (priv->action)		g_free (priv->action);	if (priv->env_uri)		xmlFree (priv->env_uri);	if (priv->env_prefix)		xmlFree (priv->env_prefix);	g_free (priv->steal_node);	g_free (priv->steal_dir);	if (priv->steal_fd != -1)		close (priv->steal_fd);	G_OBJECT_CLASS (e_soap_message_parent_class)->finalize (object);}
开发者ID:tivv,项目名称:evolution-ews,代码行数:25,


示例21: main

int main(void){	FILE *f;	int ret;	char chars[10];	xmlParserCtxtPtr ctxt;	xdebug_str message = {0, 0, NULL};	xdebug_xml_reader_priv data;	data.level   = 0;	data.xml     = NULL;	data.current = NULL;	f = fopen("test.xml", "r");		ctxt = xmlCreatePushParserCtxt(sax_handler_ptr, NULL, NULL, 0, "test");	ctxt->_private = &data;	while ((ret = fread(chars, 1, 3, f)) > 0) {		xmlParseChunk(ctxt, chars, ret, 0);	}	xmlParseChunk(ctxt, chars, 0, 1);	xdebug_xml_return_node(data.xml, &message);	xdebug_xml_node_dtor(data.xml);	printf("%s/n", message.d);	xdebug_str_dtor(message);		xmlFreeParserCtxt(ctxt);	fclose(f);	xmlCleanupParser();	xmlMemoryDump();	return 0;}
开发者ID:azhargiri,项目名称:gtkdbgp,代码行数:34,


示例22: ocr_callback

static void ocr_callback(ocr_t *ocr, char *buf, int size){  if ( buf != NULL ) {    dprintf("READ '%s'/n", buf);    /* Create XML parser context if a new page is coming */    if ( ocr->xml == NULL )      ocr->xml = xmlCreatePushParserCtxt(&handlers, &(ocr->ctx), buf, size, "ocr-output");    else      xmlParseChunk(ocr->xml, buf, size, 0);    if ( (ocr->xml != NULL) && (ocr->ctx.state == OCR_STATE_END) ) {      /* End document parsing */      xmlParseChunk(ocr->xml, buf, 0, 1);      /* Free XML SAX parser */      xmlFreeParserCtxt(ocr->xml);      ocr->xml = NULL;      ocr->ctx.state = OCR_STATE_IDLE;    }  }  else {    ocr_terminate(ocr);  }}
开发者ID:testfarm,项目名称:testfarm,代码行数:26,


示例23: eupnp_service_parser_free

static voideupnp_service_parser_free(Eupnp_Service_Parser *p){   if (!p) return;   if (p->ctx) xmlFreeParserCtxt(p->ctx);   free(p);}
开发者ID:Limsik,项目名称:e17,代码行数:7,


示例24: oreganoXmlSAXParseFile

// A modified version of XmlSAXParseFile in gnome-xml. This one lets us set// the user_data that is passed to the various callbacks, to make it possible// to avoid lots of global variables.gboolean oreganoXmlSAXParseFile (xmlSAXHandlerPtr sax, gpointer user_data, const gchar *filename){	g_return_val_if_fail (filename != NULL, FALSE);	gboolean parser_failed, ret = TRUE;	xmlParserCtxtPtr ctxt;	ctxt = xmlCreateFileParserCtxt (filename);	if (ctxt == NULL)		return FALSE;	ctxt->sax = sax;	ctxt->userData = user_data;#if defined(LIBXML_VERSION) && LIBXML_VERSION >= 20000	xmlKeepBlanksDefault (0);#endif	parser_failed = FALSE;	if (xmlParseDocument (ctxt) < 0) {		// FIXME post a message to the log buffer with as much details as possible		g_message ("Failed to parse /"%s/"", filename);		ret = FALSE;		parser_failed = TRUE;	} else {		ret = ctxt->wellFormed ? TRUE : FALSE;		if (sax != NULL)			ctxt->sax = NULL;	}	if (!parser_failed)		xmlFreeParserCtxt (ctxt);	return ret;}
开发者ID:drahnr,项目名称:oregano,代码行数:37,


示例25: _waitForAnswer

xmlDocPtr _waitForAnswer(int sockfd) {	xmlParserCtxtPtr requestParserCtxt;	xmlDocPtr parsedDoc = NULL;    int resRead = 0;    int bytesRead = 0;    int readTries = 0;    int chunkParseResult = 0;	    char buffer[XMLBUS_CHUNK_READLENGTH + 1];    resRead = recv(sockfd, buffer, XMLBUS_CHUNK_INITIAL_READLENGTH, 0);    if (resRead > 0) {        buffer[resRead] = '/0';        requestParserCtxt = xmlCreatePushParserCtxt(NULL, NULL, buffer, resRead, NULL);        bytesRead += resRead;    } else {        printf("Read failed socket readerror:%d -> closing clientsocket", resRead);        return NULL;    }    xmlCtxtUseOptions(requestParserCtxt,XML_PARSE_NOWARNING); 	    while(1) {        resRead = recv(sockfd, buffer, XMLBUS_CHUNK_READLENGTH, 0);        buffer[resRead] = '/0';        if (resRead > 0) {            chunkParseResult = xmlParseChunk(requestParserCtxt,buffer,resRead,0);            if (chunkParseResult != 0) {                xmlErrorPtr xmlErr = xmlGetLastError();                printf("request parsing found error %d: %s", chunkParseResult, xmlErr->message);                //@TODO recover or bail out            }            if (requestParserCtxt->instate == XML_PARSER_EPILOG) {                break;            }            bytesRead += resRead;            continue;                             // don't need to parse it another time... it is done already        }                                         // end of reading (no data received)        else {            // Closed connection or error (in this case there is no buffer content, is it ?)            if (readTries < 5) {                readTries++;                continue;            }            else {                // end of parsing (check if the xml is valid)                if (bytesRead > 0) {                    // end of reading, try to parse the message so far                    break;                }                //log4c_category_error(loggerCategory, "thread %d read: data read failed, bailing out", threadId);                //close(request->clientSocket);                return NULL;            }        }                                         // end resRead > 0 .. else    }                                             // end while(1)    chunkParseResult = xmlParseChunk(requestParserCtxt, NULL, 0, 1);	parsedDoc = requestParserCtxt->myDoc;    xmlFreeParserCtxt(requestParserCtxt);	return parsedDoc;	}
开发者ID:olger,项目名称:xmlbus,代码行数:59,



注:本文中的xmlFreeParserCtxt函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ xmlFreeTextReader函数代码示例
C++ xmlFreeNode函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。