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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? htxml.c

?? www工具包. 這是W3C官方支持的www支撐庫(kù). 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號(hào):
/***	LIBWWW STREAM WRAPPER FOR EXPAT XML PARSER****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTXML.c,v 2.9 2000/12/19 08:53:43 kahan Exp $****	This module requires expat in order to compile/link*//* Library include files */#include "wwwsys.h"#include "WWWUtil.h"#include "WWWCore.h"/* 2000-29-08 JK : pre-pruning code out of libwww */#ifdef HT_STRUCT_XML_STREAM #undef HT_STRUCT_XML_STREAM#endif#ifdef HT_STRUCT_XML_STREAM#include "SGML.h"#endif /* HT_STRUCT_XML_STREAM */#include "HTXML.h"     				 /* Implemented here */#define XML_MAX_ATTRIBUTES 50struct _HTStream {    const HTStreamClass *	isa;    int				state;    HTRequest *			request;    HTStream *                  target;    HTStructuredClass *         actions;	    HTStructured *              starget;	    XML_Parser 			xmlstream;#ifdef HT_STRUCT_XML_STREAM    SGML_dtd *                  dtd;#endif /* HT_STRUCT_XML_STREAM */    XML_StartElementHandler     xml_start_element;    XML_EndElementHandler       xml_end_element;    XML_CharacterDataHandler    xml_character_data;    XML_DefaultHandler          xml_default_handler;    void *                      xml_user_data;};/* @@@ SHould not be global but controlled by name spaces @@@ */PRIVATE HTXMLCallback_new *	XMLInstance = NULL;PRIVATE void *			XMLInstanceContext = NULL;/* ------------------------------------------------------------------------- */PRIVATE int HTXML_flush (HTStream * me){    if(me->target)	return (*me->target->isa->flush)(me->target);    else if (me->starget)	return (*me->actions->flush)(me->starget);    return HT_OK;}PRIVATE int HTXML_free (HTStream * me){    int status = HT_OK;    XML_ParserFree(me->xmlstream);    if (me->target) {	if ((status = (*me->target->isa->_free)(me->target)) == HT_WOULD_BLOCK)	    return HT_WOULD_BLOCK;    } else if(me->starget) {      if ((status = (*me->actions->_free)(me->starget)) == HT_WOULD_BLOCK)	    return HT_WOULD_BLOCK;    }    HTTRACE(XML_TRACE, "XML Parser.. FREEING...\n");    HT_FREE(me);    return status;}PRIVATE int HTXML_abort (HTStream * me, HTList * e){    HTTRACE(XML_TRACE, "XML Parser.. ABORTING...\n");    XML_ParserFree(me->xmlstream);    if (me->target)		(*me->target->isa->abort)(me->target, NULL);    else if (me->starget)		(*me->actions->abort)(me->starget, e);    HT_FREE(me);    return HT_ERROR;}PRIVATE int HTXML_write (HTStream * me, const char * buf, int len){    if (me->state == HT_OK) {	int status = XML_Parse(me->xmlstream, buf, len, 0);	if (!status) {	    HTTRACE(XML_TRACE, "XML Parser..  `%s\'\n" _		    (char *)XML_ErrorString(XML_GetErrorCode(me->xmlstream)));	    me->state = HT_ERROR;	}    }    /*     **  We don't want to return an error here as this kills    **  a potential pipeline of requests we might have    */    return HT_OK;}PRIVATE int HTXML_putCharacter (HTStream * me, char c){    return HTXML_write(me, &c, 1);}PRIVATE int HTXML_putString (HTStream * me, const char * s){    return HTXML_write(me, s, (int) strlen(s));}#ifdef HT_STRUCT_XML_STREAMPRIVATE BOOL set_attributes_values(HTTag *tag,BOOL *present,char **value,				   const char *nameatt,const char *valueatt){    if(tag && nameatt && valueatt) {	int i;	HTAttr *attributes= tag->attributes;	for(i = 0; i< tag->number_of_attributes ; i++) {	    if(!strcasecomp(attributes[i].name,nameatt)) {		present[i] = TRUE;		value[i] = (char *)valueatt;		return TRUE;	    }	}    }    return FALSE;}PRIVATE void start_element(HTStream *	me,			   const XML_Char *name,			   const XML_Char **atts){    int element_number = 	SGML_findElementNumber((SGML_dtd *)me->dtd,(char *)name);    if(element_number >= 0) {	HTTag *tag = SGML_findTag (me->dtd,element_number);	int i = 0;  	BOOL present[XML_MAX_ATTRIBUTES];	const char *value[XML_MAX_ATTRIBUTES];	memset((void *) present, '\0', XML_MAX_ATTRIBUTES);	memset((void *) value, '\0', XML_MAX_ATTRIBUTES*sizeof(char *));	while(atts[i]) {	   set_attributes_values(tag,present,(char **)value,atts[i],atts[i+1]);	    i+=2;	    /* attributes that are not in the dtd will be lost */	}	(*me->actions->start_element)	    (me->starget,element_number,present,value);     } else {	/* elements that are not in the dtd will be lost */	    }}PRIVATE void end_element(HTStream * me, const XML_Char *name){    int element_number = SGML_findElementNumber(me->dtd,(char *)name);    if(element_number > 0) {	(*me->actions->end_element)(me->starget, element_number);    } else {	/* elements that are not in the dtd will be lost */	    }}PRIVATE void character_data(HTStream *me, const XML_Char *s, int len){    (*me->actions->put_block)(me->starget, s, len);}PRIVATE void default_handler(HTStream *me, const XML_Char *s, int len){    if(s[0] == '&' && s[len-1]==';') {       (*me->actions->unparsed_entity)(me->starget, s,len);    } else {	/* characters that can not be parsed are lost */    }}#endif /* HT_STRUCT_XML_STREAM */PRIVATE const HTStreamClass HTXMLClass ={		    "xml",    HTXML_flush,    HTXML_free,    HTXML_abort,    HTXML_putCharacter,    HTXML_putString,    HTXML_write}; PUBLIC HTStream * HTXML_new (HTRequest *	request,			     void *		param,			     HTFormat		input_format,			     HTFormat		output_format,			     HTStream *		output_stream){    HTStream * me = NULL;    HTCharset charset = HTResponse_charset (HTRequest_response(request));    if ((me = (HTStream *) HT_CALLOC(1, sizeof(HTStream))) == NULL)	HT_OUTOFMEM("HTXML_new");    me->isa = &HTXMLClass;    me->state = HT_OK;    me->request = request;    me->target = output_stream ? output_stream : HTErrorStream();    /* Now create the XML parser instance */    if ((me->xmlstream = XML_ParserCreate(HTAtom_name(charset))) == NULL) {	HT_FREE(me);	return HTErrorStream();    }    HTTRACE(XML_TRACE, "XML Parser.. Stream created\n");        /* Call the stream callback handler (if any) with this new stream */    if (XMLInstance)	(*XMLInstance)(me, request, output_format, output_stream, me->xmlstream, XMLInstanceContext);    return me;}PUBLIC BOOL HTXMLCallback_registerNew (HTXMLCallback_new * me, void * context){    XMLInstance = me;    XMLInstanceContext = context;    return YES;}#ifdef HT_STRUCT_XML_STREAMPRIVATE HTStream * HTXMLStructured_new (const SGML_dtd * dtd, HTStructured * starget){    HTStream * me = NULL;    if ((me = (HTStream *) HT_CALLOC(1, sizeof(HTStream))) == NULL)	HT_OUTOFMEM("HTXML_new");    me->isa = &HTXMLClass;    me->state = HT_OK;    me->starget = starget;    me->dtd = (SGML_dtd *)dtd;     me->actions = (HTStructuredClass*)(((HTStream*)starget)->isa);    /* Now create the XML parser instance */    if ((me->xmlstream = XML_ParserCreate(NULL)) == NULL) {	HT_FREE(me);	return HTErrorStream();    }    XML_SetUserData(me->xmlstream,me);    XML_SetElementHandler(me->xmlstream,			  (XML_StartElementHandler)start_element, 			  (XML_EndElementHandler)end_element);    XML_SetCharacterDataHandler(me->xmlstream,  				(XML_CharacterDataHandler)character_data);    XML_SetDefaultHandler(me->xmlstream,			  (XML_DefaultHandler)default_handler);    HTTRACE(XML_TRACE, "XML Parser.. Stream created\n");    return me;}PRIVATE BOOL HTXMLStructured_setHandlers (HTStream *			me,					 XML_StartElementHandler	start,					 XML_EndElementHandler		end, 					 XML_CharacterDataHandler	char_data,					 XML_DefaultHandler		def_handler){    if(me) {	me->xml_start_element = start;	me->xml_end_element = end;	me->xml_character_data = char_data;	me->xml_default_handler = def_handler;	XML_SetElementHandler(me->xmlstream,start,end);	XML_SetCharacterDataHandler(me->xmlstream,char_data);	XML_SetDefaultHandler(me->xmlstream,def_handler);	return YES;    }    return NO;}			PRIVATE BOOL HTXMLStructured_setUserData(HTStream *me, void *user_data){    if(me) {	me->xml_user_data = user_data;	XML_SetUserData(me->xmlstream,me->xml_user_data);	return YES;    }    return NO;}#endif /* HT_STRUCT_XML_STREAM */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一成年网| 久久精品欧美一区二区三区不卡| 日韩一区二区在线观看视频| 精品电影一区二区| 中文字幕视频一区二区三区久| 亚洲国产日韩综合久久精品| 麻豆国产精品777777在线| 成人白浆超碰人人人人| 欧美亚洲一区二区在线观看| 2020国产精品自拍| 亚洲一区二区三区四区在线观看 | 欧美日韩在线直播| 欧美r级电影在线观看| 国产精品久久久久久久久快鸭| 午夜精品成人在线| 国产超碰在线一区| 6080yy午夜一二三区久久| 中文一区二区在线观看| 婷婷六月综合亚洲| 99免费精品视频| 日韩欧美高清dvd碟片| 亚洲天堂精品视频| 国产一区二区三区蝌蚪| 在线观看视频欧美| 欧美国产精品一区二区| 蜜桃视频第一区免费观看| 91麻豆免费观看| 久久亚洲精精品中文字幕早川悠里| 亚洲一区二区三区影院| 成人av免费在线观看| 日韩免费电影网站| 亚洲va国产va欧美va观看| 成人午夜看片网址| 日韩欧美亚洲一区二区| 亚洲午夜私人影院| 91网页版在线| 国产精品午夜春色av| 久久成人综合网| 精品1区2区3区| 亚洲男人的天堂av| 丁香婷婷综合激情五月色| 日韩视频中午一区| 亚洲成a人片在线观看中文| 成人精品一区二区三区四区| 久久美女艺术照精彩视频福利播放| 天天影视网天天综合色在线播放| 97se亚洲国产综合自在线观| 国产欧美日韩精品在线| 久久97超碰国产精品超碰| 欧美老年两性高潮| 亚洲一区二区三区四区中文字幕| 99国产精品久久| 中文字幕一区二区视频| 成人一级片在线观看| 久久久国产一区二区三区四区小说| 久久国产精品99精品国产| 日韩视频在线永久播放| 日韩成人dvd| 日韩一区二区三| 青青草视频一区| 日韩一区二区精品葵司在线| 亚洲国产成人精品视频| 在线一区二区三区四区| 一个色在线综合| 欧美视频一区二区三区| 亚洲综合自拍偷拍| 欧美探花视频资源| 亚洲国产cao| 欧美日韩国产小视频在线观看| 一区二区免费视频| 欧美日韩中字一区| 午夜精品一区二区三区电影天堂| 欧美日韩精品一区二区三区蜜桃| 亚洲6080在线| 欧美久久一二区| 免费高清在线视频一区·| 日韩欧美不卡一区| 精品亚洲成a人| 日韩精品国产精品| 91麻豆精品国产91久久久久久| 视频一区国产视频| 日韩无一区二区| 国内精品国产三级国产a久久| 欧美精品一区在线观看| 成人免费视频一区| 国产精品久久看| 色老综合老女人久久久| 亚洲第一会所有码转帖| 91麻豆精品国产91久久久更新时间| 日韩精品久久久久久| wwwwxxxxx欧美| 成人app在线| 一区二区三区四区中文字幕| 777午夜精品免费视频| 国内成人自拍视频| 中文子幕无线码一区tr| 在线观看日韩毛片| 奇米综合一区二区三区精品视频| 久久久久久久久久久电影| 99久久精品国产一区| 亚洲国产欧美在线| 久久综合色天天久久综合图片| 丰满少妇久久久久久久| 亚洲精品ww久久久久久p站| 欧美精选在线播放| 国产成人精品免费网站| 亚洲乱码国产乱码精品精小说| 欧美日本一区二区在线观看| 国产在线播放一区二区三区| 国产精品国产三级国产三级人妇| 欧美日韩在线观看一区二区 | 日韩精品一区二区三区在线播放| 国产精品资源在线观看| 亚洲欧美日韩中文播放| 欧美日韩免费视频| 国产激情一区二区三区| 亚洲国产精品一区二区尤物区| 欧美成人在线直播| 91免费看片在线观看| 美女一区二区在线观看| 亚洲婷婷国产精品电影人久久| 欧美日韩成人在线一区| 国产**成人网毛片九色 | 69成人精品免费视频| 懂色av一区二区三区免费看| 五月综合激情日本mⅴ| 中文字幕精品—区二区四季| 777久久久精品| 92国产精品观看| 九九视频精品免费| 亚洲电影视频在线| 国产精品久久久久四虎| 日韩三级在线观看| 91黄色免费观看| 国产91精品一区二区| 青青草国产成人av片免费| **网站欧美大片在线观看| 精品国产区一区| 欧美二区在线观看| 91片黄在线观看| 国产老女人精品毛片久久| 视频一区在线播放| 中文字幕视频一区二区三区久| 亚洲精品一区二区三区香蕉| 欧美色精品在线视频| 91视频免费观看| 国产91丝袜在线观看| 日韩av高清在线观看| 亚洲精品乱码久久久久久黑人 | 波多野结衣精品在线| 极品少妇xxxx精品少妇| 日韩精品欧美成人高清一区二区| 中文字幕一区日韩精品欧美| 久久一区二区三区国产精品| 91精品婷婷国产综合久久竹菊| 91浏览器打开| 成人免费视频视频在线观看免费| 精品系列免费在线观看| 日产国产欧美视频一区精品| 一区二区三区四区在线播放| 亚洲视频免费观看| 国产精品久久久久久久午夜片| 久久你懂得1024| 欧美成人午夜电影| 日韩一区和二区| 欧美高清一级片在线| 欧美日韩在线播放| 欧美视频在线观看一区| 欧美性猛交xxxxxxxx| 日本高清免费不卡视频| 91免费版在线看| 91丨九色porny丨蝌蚪| 成人av影视在线观看| 高清免费成人av| 成人精品视频一区二区三区尤物| 国产成人鲁色资源国产91色综| 国产一区二区视频在线| 韩国精品在线观看| 国产美女主播视频一区| 国产福利一区二区三区视频在线| 久久精品国产网站| 国产一区二区三区观看| 国产麻豆成人精品| 国产成人av网站| 97久久精品人人做人人爽50路| 99精品桃花视频在线观看| 色婷婷久久综合| 欧美日韩三级在线| 欧美精品丝袜久久久中文字幕| 91精品欧美久久久久久动漫| 91精品国产黑色紧身裤美女| 日韩一区和二区| 精品处破学生在线二十三| 欧美激情综合网| 亚洲色图欧洲色图婷婷| 亚洲一区二区三区在线看| 日本中文在线一区| 国产一本一道久久香蕉| 成人av免费观看| 欧美三区免费完整视频在线观看|