亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sax.c

?? Vovida 社區開源的 SIP 協議源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * SAX.c : Default SAX handler to build a tree. * * See Copyright for the status of this software. * * Daniel Veillard <Daniel.Veillard@w3.org> */#include "global.h"#ifdef WIN32#include "win32config.h"#else#include "config.h"#endif#include <stdio.h>#include <stdlib.h>#include <libxml/xmlmemory.h>#include <libxml/tree.h>#include <libxml/parser.h>#include <libxml/parserInternals.h>#include <libxml/valid.h>#include <libxml/entities.h>#include "xml-error.h"#include <libxml/debugXML.h>#include <libxml/xmlIO.h>#include <libxml/SAX.h>/* #define DEBUG_SAX *//* #define DEBUG_SAX_TREE *//** * getPublicId: * @ctx: the user data (XML parser context) * * Return the public ID e.g. "-//SGMLSOURCE//DTD DEMO//EN" * * Returns a xmlChar * */const xmlChar *getPublicId(void *ctx){    /* xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; */    return(NULL);}/** * getSystemId: * @ctx: the user data (XML parser context) * * Return the system ID, basically URL or filename e.g. * http://www.sgmlsource.com/dtds/memo.dtd * * Returns a xmlChar * */const xmlChar *getSystemId(void *ctx){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    return(BAD_CAST ctxt->input->filename); }/** * getLineNumber: * @ctx: the user data (XML parser context) * * Return the line number of the current parsing point. * * Returns an int */intgetLineNumber(void *ctx){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    return(ctxt->input->line);}/** * getColumnNumber: * @ctx: the user data (XML parser context) * * Return the column number of the current parsing point. * * Returns an int */intgetColumnNumber(void *ctx){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    return(ctxt->input->col);}/* * The default SAX Locator. */xmlSAXLocator xmlDefaultSAXLocator = {    getPublicId, getSystemId, getLineNumber, getColumnNumber};/** * isStandalone: * @ctx: the user data (XML parser context) * * Is this document tagged standalone ? * * Returns 1 if true */intisStandalone(void *ctx){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    return(ctxt->myDoc->standalone == 1);}/** * hasInternalSubset: * @ctx: the user data (XML parser context) * * Does this document has an internal subset * * Returns 1 if true */inthasInternalSubset(void *ctx){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    return(ctxt->myDoc->intSubset != NULL);}/** * hasExternalSubset: * @ctx: the user data (XML parser context) * * Does this document has an external subset * * Returns 1 if true */inthasExternalSubset(void *ctx){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    return(ctxt->myDoc->extSubset != NULL);}/** * internalSubset: * @ctx: the user data (XML parser context) * * Callback on internal subset declaration. */voidinternalSubset(void *ctx, const xmlChar *name,	       const xmlChar *ExternalID, const xmlChar *SystemID){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;#ifdef DEBUG_SAX    fprintf(stderr, "SAX.internalSubset(%s, %s, %s)\n",            name, ExternalID, SystemID);#endif    xmlCreateIntSubset(ctxt->myDoc, name, ExternalID, SystemID);}/** * externalSubset: * @ctx: the user data (XML parser context) * * Callback on external subset declaration. */voidexternalSubset(void *ctx, const xmlChar *name,	       const xmlChar *ExternalID, const xmlChar *SystemID){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;#ifdef DEBUG_SAX    fprintf(stderr, "SAX.externalSubset(%s, %s, %s)\n",            name, ExternalID, SystemID);#endif    if (((ExternalID != NULL) || (SystemID != NULL)) &&        (ctxt->validate && ctxt->wellFormed && ctxt->myDoc)) {	/*	 * Try to fetch and parse the external subset.	 */	xmlParserInputPtr oldinput;	int oldinputNr;	int oldinputMax;	xmlParserInputPtr *oldinputTab;	int oldwellFormed;	xmlParserInputPtr input = NULL;	xmlCharEncoding enc;	/*	 * Ask the Entity resolver to load the damn thing	 */	if ((ctxt->sax != NULL) && (ctxt->sax->resolveEntity != NULL))	    input = ctxt->sax->resolveEntity(ctxt->userData, ExternalID,	                                        SystemID);	if (input == NULL) {	    return;	}	xmlNewDtd(ctxt->myDoc, name, ExternalID, SystemID);	/*	 * make sure we won't destroy the main document context	 */	oldinput = ctxt->input;	oldinputNr = ctxt->inputNr;	oldinputMax = ctxt->inputMax;	oldinputTab = ctxt->inputTab;	oldwellFormed = ctxt->wellFormed;	ctxt->inputTab = (xmlParserInputPtr *)	                 xmlMalloc(5 * sizeof(xmlParserInputPtr));	if (ctxt->inputTab == NULL) {	    ctxt->errNo = XML_ERR_NO_MEMORY;	    if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))		ctxt->sax->error(ctxt->userData, 		     "externalSubset: out of memory\n");	    ctxt->errNo = XML_ERR_NO_MEMORY;	    ctxt->input = oldinput;	    ctxt->inputNr = oldinputNr;	    ctxt->inputMax = oldinputMax;	    ctxt->inputTab = oldinputTab;	    return;	}	ctxt->inputNr = 0;	ctxt->inputMax = 5;	ctxt->input = NULL;	xmlPushInput(ctxt, input);	/*	 * On the fly encoding conversion if needed	 */	enc = xmlDetectCharEncoding(ctxt->input->cur, 4);	xmlSwitchEncoding(ctxt, enc);	if (input->filename == NULL)	    input->filename = (char *) xmlStrdup(SystemID);	input->line = 1;	input->col = 1;	input->base = ctxt->input->cur;	input->cur = ctxt->input->cur;	input->free = NULL;	/*	 * let's parse that entity knowing it's an external subset.	 */	xmlParseExternalSubset(ctxt, ExternalID, SystemID);        /*	 * Free up the external entities	 */	while (ctxt->inputNr > 1)	    xmlPopInput(ctxt);	xmlFreeInputStream(ctxt->input);        xmlFree(ctxt->inputTab);	/*	 * Restore the parsing context of the main entity	 */	ctxt->input = oldinput;	ctxt->inputNr = oldinputNr;	ctxt->inputMax = oldinputMax;	ctxt->inputTab = oldinputTab;	/* ctxt->wellFormed = oldwellFormed; */    }}/** * resolveEntity: * @ctx: the user data (XML parser context) * @publicId: The public ID of the entity * @systemId: The system ID of the entity * * The entity loader, to control the loading of external entities, * the application can either: *    - override this resolveEntity() callback in the SAX block *    - or better use the xmlSetExternalEntityLoader() function to *      set up it's own entity resolution routine * * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour. */xmlParserInputPtrresolveEntity(void *ctx, const xmlChar *publicId, const xmlChar *systemId){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;#ifdef DEBUG_SAX    fprintf(stderr, "SAX.resolveEntity(%s, %s)\n", publicId, systemId);#endif    return(xmlLoadExternalEntity((const char *) systemId,				 (const char *) publicId, ctxt));}/** * getEntity: * @ctx: the user data (XML parser context) * @name: The entity name * * Get an entity by name * * Returns the xmlEntityPtr if found. */xmlEntityPtrgetEntity(void *ctx, const xmlChar *name){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlEntityPtr ret;#ifdef DEBUG_SAX    fprintf(stderr, "SAX.getEntity(%s)\n", name);#endif    ret = xmlGetDocEntity(ctxt->myDoc, name);    return(ret);}/** * getParameterEntity: * @ctx: the user data (XML parser context) * @name: The entity name * * Get a parameter entity by name * * Returns the xmlEntityPtr if found. */xmlEntityPtrgetParameterEntity(void *ctx, const xmlChar *name){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlEntityPtr ret;#ifdef DEBUG_SAX    fprintf(stderr, "SAX.getParameterEntity(%s)\n", name);#endif    ret = xmlGetParameterEntity(ctxt->myDoc, name);    return(ret);}/** * entityDecl: * @ctx: the user data (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 */voidentityDecl(void *ctx, const xmlChar *name, int type,          const xmlChar *publicId, const xmlChar *systemId, xmlChar *content){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;#ifdef DEBUG_SAX    fprintf(stderr, "SAX.entityDecl(%s, %d, %s, %s, %s)\n",            name, type, publicId, systemId, content);#endif    if (ctxt->inSubset == 1)	xmlAddDocEntity(ctxt->myDoc, name, type, publicId,		              systemId, content);    else if (ctxt->inSubset == 2)	xmlAddDtdEntity(ctxt->myDoc, name, type, publicId,		              systemId, content);    else {	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))	    ctxt->sax->error(ctxt, 	     "SAX.entityDecl(%s) called while not in subset\n", name);    }}/** * attributeDecl: * @ctx: the user data (XML parser context) * @fullname:  the attribute name  * @type:  the attribute type  * @publicId: The public ID of the attribute * @systemId: The system ID of the attribute * @content: the attribute value (without processing). * * An attribute definition has been parsed */voidattributeDecl(void *ctx, const xmlChar *elem, const xmlChar *fullname,              int type, int def, const xmlChar *defaultValue,	      xmlEnumerationPtr tree){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlAttributePtr attr;    xmlChar *name = NULL, *prefix = NULL;#ifdef DEBUG_SAX    fprintf(stderr, "SAX.attributeDecl(%s, %s, %d, %d, %s, ...)\n",            elem, fullname, type, def, defaultValue);#endif    name = xmlSplitQName(ctxt, fullname, &prefix);    if (ctxt->inSubset == 1)	attr = xmlAddAttributeDecl(&ctxt->vctxt, ctxt->myDoc->intSubset, elem,                               name, prefix, type, def, defaultValue, tree);    else if (ctxt->inSubset == 2)	attr = xmlAddAttributeDecl(&ctxt->vctxt, ctxt->myDoc->extSubset, elem,                               name, prefix, type, def, defaultValue, tree);    else {	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))	    ctxt->sax->error(ctxt, 	     "SAX.attributeDecl(%s) called while not in subset\n", name);	return;    }    if (attr == 0) ctxt->valid = 0;    if (ctxt->validate && ctxt->wellFormed &&        ctxt->myDoc && ctxt->myDoc->intSubset)	ctxt->valid &= xmlValidateAttributeDecl(&ctxt->vctxt, ctxt->myDoc,	                                        attr);    if (prefix != NULL)	xmlFree(prefix);    if (name != NULL)	xmlFree(name);}/** * elementDecl: * @ctx: the user data (XML parser context) * @name:  the element name  * @type:  the element type  * @publicId: The public ID of the element * @systemId: The system ID of the element * @content: the element value (without processing). * * An element definition has been parsed */voidelementDecl(void *ctx, const xmlChar *name, int type,	    xmlElementContentPtr content){    xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;    xmlElementPtr elem = NULL;#ifdef DEBUG_SAX    fprintf(stderr, "SAX.elementDecl(%s, %d, ...)\n",            fullname, type);#endif        if (ctxt->inSubset == 1)	elem = xmlAddElementDecl(&ctxt->vctxt, ctxt->myDoc->intSubset,                             name, type, content);    else if (ctxt->inSubset == 2)	elem = xmlAddElementDecl(&ctxt->vctxt, ctxt->myDoc->extSubset,                             name, type, content);    else {	if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))	    ctxt->sax->error(ctxt, 	     "SAX.elementDecl(%s) called while not in subset\n", name);	return;    }    if (elem == NULL) ctxt->valid = 0;    if (ctxt->validate && ctxt->wellFormed &&        ctxt->myDoc && ctxt->myDoc->intSubset)	ctxt->valid &= xmlValidateElementDecl(&ctxt->vctxt, ctxt->myDoc, elem);}/** * notationDecl: * @ctx: the user data (XML parser context) * @name: The name of the notation * @publicId: The public ID of the entity * @systemId: The system ID of the entity * * What to do when a notation declaration has been parsed. */voidnotationDecl(void *ctx, const xmlChar *name,	     const xmlChar *publicId, const xmlChar *systemId)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天影视网天天综合色在线播放| 色av成人天堂桃色av| 成人国产精品免费观看| 欧美日韩色综合| 国产精品不卡一区| 久久99热99| 欧美日韩的一区二区| 国产日韩欧美精品综合| 日韩电影免费在线| 在线免费观看日韩欧美| 中文字幕成人网| 国产主播一区二区| 欧美一区二区三区四区久久| 日韩一区在线播放| 国产99久久精品| 精品国产凹凸成av人导航| 亚洲国产精品一区二区久久| 不卡高清视频专区| 中文无字幕一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 在线看日本不卡| 亚洲欧美另类图片小说| 成人免费看片app下载| 久久美女高清视频| 卡一卡二国产精品| 日韩一区二区视频在线观看| 亚洲国产成人91porn| 欧美性三三影院| 亚洲一区二区三区视频在线播放 | 色综合久久久久综合| 国产日韩欧美高清| 福利电影一区二区三区| 亚洲国产高清在线观看视频| 国产精品一二三区| 国产欧美一区二区三区在线看蜜臀 | 亚洲h动漫在线| 欧美群妇大交群的观看方式| 亚洲一二三区不卡| 制服.丝袜.亚洲.中文.综合| 亚洲国产一区二区a毛片| 欧美午夜精品电影| 日韩不卡免费视频| 日韩美女在线视频| 国产91综合网| 国产精品萝li| 欧洲av一区二区嗯嗯嗯啊| 亚洲第一主播视频| 欧美一区午夜精品| 国产精品18久久久久久久久久久久| 国产婷婷色一区二区三区| 丰满放荡岳乱妇91ww| 亚洲精品高清视频在线观看| 欧美日韩一区小说| 蜜臀久久99精品久久久画质超高清| 精品成人a区在线观看| 国产不卡视频一区| 亚洲自拍偷拍图区| 欧美一区二区三区婷婷月色| 国产一区二区三区精品欧美日韩一区二区三区| 欧美成人高清电影在线| 风间由美性色一区二区三区| 一区二区三区在线视频观看 | 色呦呦一区二区三区| 亚洲一区在线视频观看| 欧美一区二区福利视频| 国产乱码精品一区二区三区五月婷| 亚洲国产精品99久久久久久久久| 在线影视一区二区三区| 日本aⅴ亚洲精品中文乱码| 国产亚洲一区二区在线观看| 成人18视频在线播放| 午夜影视日本亚洲欧洲精品| 精品成人私密视频| 日韩一级片网址| 国产jizzjizz一区二区| 五月婷婷欧美视频| 中文字幕一区二区三| 91精品国产色综合久久不卡蜜臀| 国产夫妻精品视频| 亚洲一区二区三区激情| 国产日韩精品一区二区浪潮av| 欧美图区在线视频| 成人一区在线看| 日韩激情中文字幕| 亚洲欧美电影一区二区| 精品裸体舞一区二区三区| 91黄视频在线观看| 成人丝袜视频网| 蜜桃视频在线观看一区二区| 亚洲色图欧美激情| 国产视频一区在线播放| 欧美一区二区三区男人的天堂| 99麻豆久久久国产精品免费优播| 视频一区在线播放| 一区二区国产视频| 国产精品国产成人国产三级| 欧美mv和日韩mv国产网站| 欧美乱妇一区二区三区不卡视频| 91麻豆高清视频| 97久久精品人人爽人人爽蜜臀| 国产综合久久久久久久久久久久| 日本欧洲一区二区| 天天色 色综合| 亚洲国产美国国产综合一区二区| 亚洲日本欧美天堂| 国产精品美女久久久久av爽李琼| 26uuu久久综合| 久久综合九色综合欧美98| 精品精品国产高清一毛片一天堂| 7777精品伊人久久久大香线蕉经典版下载 | 6080国产精品一区二区| 在线观看精品一区| 欧美偷拍一区二区| 欧美日韩一级大片网址| 欧美在线观看视频一区二区三区| 91蝌蚪porny| 色天使久久综合网天天| 欧美中文字幕一区二区三区亚洲| 日本精品一区二区三区高清| 色婷婷综合视频在线观看| 日本国产一区二区| 欧美日免费三级在线| 欧美日韩一区二区三区在线看| 色激情天天射综合网| 欧美性猛交xxxx乱大交退制版| 欧美在线不卡一区| 欧美日韩国产欧美日美国产精品| 欧美日韩第一区日日骚| 欧美一级高清片在线观看| 精品少妇一区二区三区视频免付费 | 国产精品一卡二卡| 国产经典欧美精品| 风间由美一区二区av101| 欧美另类变人与禽xxxxx| 日韩一二三四区| 久久天天做天天爱综合色| 欧美国产一区二区在线观看 | 丝袜亚洲另类欧美| 久久99精品一区二区三区| 国产成人啪免费观看软件| 波多野结衣中文字幕一区 | 国产白丝网站精品污在线入口| 成人免费高清在线| 在线观看日韩精品| 日韩一区二区三区视频在线观看 | 在线不卡免费欧美| 精品1区2区在线观看| 中文字幕一区二区三中文字幕| 亚洲女子a中天字幕| 麻豆精品一区二区av白丝在线| 国产成人在线色| 欧美中文字幕久久| 久久久精品一品道一区| 综合久久综合久久| 理论片日本一区| 色综合久久天天| 精品对白一区国产伦| 亚洲欧美一区二区视频| 美腿丝袜一区二区三区| 成人久久视频在线观看| 制服视频三区第一页精品| 中文字幕va一区二区三区| 亚洲小说欧美激情另类| 高清在线不卡av| 6080午夜不卡| 亚洲视频在线一区观看| 精品无人码麻豆乱码1区2区| 日本精品视频一区二区| 久久久久久久久久久黄色| 亚洲.国产.中文慕字在线| 粉嫩在线一区二区三区视频| 欧美一二三四区在线| 亚洲欧美日韩国产综合| 国产美女一区二区三区| 欧美日韩精品一区二区三区| 中文一区二区完整视频在线观看| 三级成人在线视频| 91久久久免费一区二区| 国产亚洲美州欧州综合国| 日本亚洲电影天堂| 欧美午夜精品一区| 亚洲欧美成aⅴ人在线观看| 国产成人精品免费一区二区| 日韩免费观看高清完整版 | 亚洲乱码一区二区三区在线观看| 精品一区二区三区在线播放视频| 精品视频一区二区不卡| 亚洲三级小视频| 粉嫩av一区二区三区在线播放| 欧美mv日韩mv| 日产国产欧美视频一区精品| 欧美视频精品在线观看| 亚洲精品欧美综合四区| 91丨porny丨国产入口| 国产精品女同互慰在线看| 成人免费看的视频| 中文字幕综合网| caoporm超碰国产精品| 亚洲欧洲精品天堂一级| 99久久国产综合精品麻豆|