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

📄 xmlparse.c

📁 apache的软件linux版本
💻 C
📖 第 1 页 / 共 5 页
字号:
#define defaultHandler (((Parser *)parser)->m_defaultHandler)#define startDoctypeDeclHandler (((Parser *)parser)->m_startDoctypeDeclHandler)#define endDoctypeDeclHandler (((Parser *)parser)->m_endDoctypeDeclHandler)#define unparsedEntityDeclHandler (((Parser *)parser)->m_unparsedEntityDeclHandler)#define notationDeclHandler (((Parser *)parser)->m_notationDeclHandler)#define startNamespaceDeclHandler (((Parser *)parser)->m_startNamespaceDeclHandler)#define endNamespaceDeclHandler (((Parser *)parser)->m_endNamespaceDeclHandler)#define notStandaloneHandler (((Parser *)parser)->m_notStandaloneHandler)#define externalEntityRefHandler (((Parser *)parser)->m_externalEntityRefHandler)#define externalEntityRefHandlerArg (((Parser *)parser)->m_externalEntityRefHandlerArg)#define unknownEncodingHandler (((Parser *)parser)->m_unknownEncodingHandler)#define elementDeclHandler (((Parser *)parser)->m_elementDeclHandler)#define attlistDeclHandler (((Parser *)parser)->m_attlistDeclHandler)#define entityDeclHandler (((Parser *)parser)->m_entityDeclHandler)#define xmlDeclHandler (((Parser *)parser)->m_xmlDeclHandler)#define encoding (((Parser *)parser)->m_encoding)#define initEncoding (((Parser *)parser)->m_initEncoding)#define internalEncoding (((Parser *)parser)->m_internalEncoding)#define unknownEncodingMem (((Parser *)parser)->m_unknownEncodingMem)#define unknownEncodingData (((Parser *)parser)->m_unknownEncodingData)#define unknownEncodingHandlerData \  (((Parser *)parser)->m_unknownEncodingHandlerData)#define unknownEncodingRelease (((Parser *)parser)->m_unknownEncodingRelease)#define protocolEncodingName (((Parser *)parser)->m_protocolEncodingName)#define ns (((Parser *)parser)->m_ns)#define ns_triplets (((Parser *)parser)->m_ns_triplets)#define prologState (((Parser *)parser)->m_prologState)#define processor (((Parser *)parser)->m_processor)#define errorCode (((Parser *)parser)->m_errorCode)#define eventPtr (((Parser *)parser)->m_eventPtr)#define eventEndPtr (((Parser *)parser)->m_eventEndPtr)#define positionPtr (((Parser *)parser)->m_positionPtr)#define position (((Parser *)parser)->m_position)#define openInternalEntities (((Parser *)parser)->m_openInternalEntities)#define defaultExpandInternalEntities (((Parser *)parser)->m_defaultExpandInternalEntities)#define tagLevel (((Parser *)parser)->m_tagLevel)#define buffer (((Parser *)parser)->m_buffer)#define bufferPtr (((Parser *)parser)->m_bufferPtr)#define bufferEnd (((Parser *)parser)->m_bufferEnd)#define parseEndByteIndex (((Parser *)parser)->m_parseEndByteIndex)#define parseEndPtr (((Parser *)parser)->m_parseEndPtr)#define bufferLim (((Parser *)parser)->m_bufferLim)#define dataBuf (((Parser *)parser)->m_dataBuf)#define dataBufEnd (((Parser *)parser)->m_dataBufEnd)#define dtd (((Parser *)parser)->m_dtd)#define curBase (((Parser *)parser)->m_curBase)#define declEntity (((Parser *)parser)->m_declEntity)#define doctypeName (((Parser *)parser)->m_doctypeName)#define doctypeSysid (((Parser *)parser)->m_doctypeSysid)#define doctypePubid (((Parser *)parser)->m_doctypePubid)#define declAttributeType (((Parser *)parser)->m_declAttributeType)#define declNotationName (((Parser *)parser)->m_declNotationName)#define declNotationPublicId (((Parser *)parser)->m_declNotationPublicId)#define declElementType (((Parser *)parser)->m_declElementType)#define declAttributeId (((Parser *)parser)->m_declAttributeId)#define declAttributeIsCdata (((Parser *)parser)->m_declAttributeIsCdata)#define declAttributeIsId (((Parser *)parser)->m_declAttributeIsId)#define freeTagList (((Parser *)parser)->m_freeTagList)#define freeBindingList (((Parser *)parser)->m_freeBindingList)#define inheritedBindings (((Parser *)parser)->m_inheritedBindings)#define tagStack (((Parser *)parser)->m_tagStack)#define atts (((Parser *)parser)->m_atts)#define attsSize (((Parser *)parser)->m_attsSize)#define nSpecifiedAtts (((Parser *)parser)->m_nSpecifiedAtts)#define idAttIndex (((Parser *)parser)->m_idAttIndex)#define tempPool (((Parser *)parser)->m_tempPool)#define temp2Pool (((Parser *)parser)->m_temp2Pool)#define groupConnector (((Parser *)parser)->m_groupConnector)#define groupSize (((Parser *)parser)->m_groupSize)#define hadExternalDoctype (((Parser *)parser)->m_hadExternalDoctype)#define namespaceSeparator (((Parser *)parser)->m_namespaceSeparator)#ifdef XML_DTD#define parentParser (((Parser *)parser)->m_parentParser)#define paramEntityParsing (((Parser *)parser)->m_paramEntityParsing)#endif /* XML_DTD */#ifdef COMPILED_FROM_DSPBOOL WINAPI DllMain(HINSTANCE h, DWORD r, LPVOID p) {  return TRUE;}#endif /* def COMPILED_FROM_DSP */#ifdef _MSC_VER#ifdef _DEBUGParser *asParser(XML_Parser parser){  return parser;}#endif#endifXML_Parser XML_ParserCreate(const XML_Char *encodingName){  return XML_ParserCreate_MM(encodingName, NULL, NULL);}XML_Parser XML_ParserCreateNS(const XML_Char *encodingName, XML_Char nsSep){  XML_Char tmp[2];  *tmp = nsSep;  return XML_ParserCreate_MM(encodingName, NULL, tmp);}XML_ParserXML_ParserCreate_MM(const XML_Char *encodingName,		    const XML_Memory_Handling_Suite *memsuite,		    const XML_Char *nameSep) {    XML_Parser parser;  static  const XML_Char implicitContext[] = {    XML_T('x'), XML_T('m'), XML_T('l'), XML_T('='),    XML_T('h'), XML_T('t'), XML_T('t'), XML_T('p'), XML_T(':'),    XML_T('/'), XML_T('/'), XML_T('w'), XML_T('w'), XML_T('w'),    XML_T('.'), XML_T('w'), XML_T('3'),    XML_T('.'), XML_T('o'), XML_T('r'), XML_T('g'),    XML_T('/'), XML_T('X'), XML_T('M'), XML_T('L'),    XML_T('/'), XML_T('1'), XML_T('9'), XML_T('9'), XML_T('8'),    XML_T('/'), XML_T('n'), XML_T('a'), XML_T('m'), XML_T('e'),    XML_T('s'), XML_T('p'), XML_T('a'), XML_T('c'), XML_T('e'),    XML_T('\0')  };  if (memsuite) {    XML_Memory_Handling_Suite *mtemp;    parser = memsuite->malloc_fcn(sizeof(Parser));    mtemp = &(((Parser *) parser)->m_mem);    mtemp->malloc_fcn = memsuite->malloc_fcn;    mtemp->realloc_fcn = memsuite->realloc_fcn;    mtemp->free_fcn = memsuite->free_fcn;  }  else {    XML_Memory_Handling_Suite *mtemp;    parser = malloc(sizeof(Parser));    mtemp = &(((Parser *) parser)->m_mem);    mtemp->malloc_fcn = malloc;    mtemp->realloc_fcn = realloc;    mtemp->free_fcn = free;  }  if (!parser)    return parser;  processor = prologInitProcessor;  XmlPrologStateInit(&prologState);  userData = 0;  handlerArg = 0;  startElementHandler = 0;  endElementHandler = 0;  characterDataHandler = 0;  processingInstructionHandler = 0;  commentHandler = 0;  startCdataSectionHandler = 0;  endCdataSectionHandler = 0;  defaultHandler = 0;  startDoctypeDeclHandler = 0;  endDoctypeDeclHandler = 0;  unparsedEntityDeclHandler = 0;  notationDeclHandler = 0;  startNamespaceDeclHandler = 0;  endNamespaceDeclHandler = 0;  notStandaloneHandler = 0;  externalEntityRefHandler = 0;  externalEntityRefHandlerArg = parser;  unknownEncodingHandler = 0;  elementDeclHandler = 0;  attlistDeclHandler = 0;  entityDeclHandler = 0;  xmlDeclHandler = 0;  buffer = 0;  bufferPtr = 0;  bufferEnd = 0;  parseEndByteIndex = 0;  parseEndPtr = 0;  bufferLim = 0;  declElementType = 0;  declAttributeId = 0;  declEntity = 0;  doctypeName = 0;  doctypeSysid = 0;  doctypePubid = 0;  declAttributeType = 0;  declNotationName = 0;  declNotationPublicId = 0;  memset(&position, 0, sizeof(POSITION));  errorCode = XML_ERROR_NONE;  eventPtr = 0;  eventEndPtr = 0;  positionPtr = 0;  openInternalEntities = 0;  tagLevel = 0;  tagStack = 0;  freeTagList = 0;  freeBindingList = 0;  inheritedBindings = 0;  attsSize = INIT_ATTS_SIZE;  atts = MALLOC(attsSize * sizeof(ATTRIBUTE));  nSpecifiedAtts = 0;  dataBuf = MALLOC(INIT_DATA_BUF_SIZE * sizeof(XML_Char));  groupSize = 0;  groupConnector = 0;  hadExternalDoctype = 0;  unknownEncodingMem = 0;  unknownEncodingRelease = 0;  unknownEncodingData = 0;  unknownEncodingHandlerData = 0;  namespaceSeparator = '!';#ifdef XML_DTD  parentParser = 0;  paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER;#endif  ns = 0;  ns_triplets = 0;  poolInit(&tempPool, &(((Parser *) parser)->m_mem));  poolInit(&temp2Pool, &(((Parser *) parser)->m_mem));  protocolEncodingName = encodingName ? poolCopyString(&tempPool, encodingName) : 0;  curBase = 0;  if (!dtdInit(&dtd, parser) || !atts || !dataBuf      || (encodingName && !protocolEncodingName)) {    XML_ParserFree(parser);    return 0;  }  dataBufEnd = dataBuf + INIT_DATA_BUF_SIZE;  if (nameSep) {    XmlInitEncodingNS(&initEncoding, &encoding, 0);    ns = 1;    internalEncoding = XmlGetInternalEncodingNS();    namespaceSeparator = *nameSep;    if (! setContext(parser, implicitContext)) {      XML_ParserFree(parser);      return 0;    }  }  else {    XmlInitEncoding(&initEncoding, &encoding, 0);    internalEncoding = XmlGetInternalEncoding();  }  return parser;}  /* End XML_ParserCreate_MM */int XML_SetEncoding(XML_Parser parser, const XML_Char *encodingName){  if (!encodingName)    protocolEncodingName = 0;  else {    protocolEncodingName = poolCopyString(&tempPool, encodingName);    if (!protocolEncodingName)      return 0;  }  return 1;}XML_Parser XML_ExternalEntityParserCreate(XML_Parser oldParser,					  const XML_Char *context,					  const XML_Char *encodingName){  XML_Parser parser = oldParser;  DTD *oldDtd = &dtd;  XML_StartElementHandler oldStartElementHandler = startElementHandler;  XML_EndElementHandler oldEndElementHandler = endElementHandler;  XML_CharacterDataHandler oldCharacterDataHandler = characterDataHandler;  XML_ProcessingInstructionHandler oldProcessingInstructionHandler = processingInstructionHandler;  XML_CommentHandler oldCommentHandler = commentHandler;  XML_StartCdataSectionHandler oldStartCdataSectionHandler = startCdataSectionHandler;  XML_EndCdataSectionHandler oldEndCdataSectionHandler = endCdataSectionHandler;  XML_DefaultHandler oldDefaultHandler = defaultHandler;  XML_UnparsedEntityDeclHandler oldUnparsedEntityDeclHandler = unparsedEntityDeclHandler;  XML_NotationDeclHandler oldNotationDeclHandler = notationDeclHandler;  XML_StartNamespaceDeclHandler oldStartNamespaceDeclHandler = startNamespaceDeclHandler;  XML_EndNamespaceDeclHandler oldEndNamespaceDeclHandler = endNamespaceDeclHandler;  XML_NotStandaloneHandler oldNotStandaloneHandler = notStandaloneHandler;  XML_ExternalEntityRefHandler oldExternalEntityRefHandler = externalEntityRefHandler;  XML_UnknownEncodingHandler oldUnknownEncodingHandler = unknownEncodingHandler;  XML_ElementDeclHandler oldElementDeclHandler = elementDeclHandler;  XML_AttlistDeclHandler oldAttlistDeclHandler = attlistDeclHandler;  XML_EntityDeclHandler oldEntityDeclHandler = entityDeclHandler;  XML_XmlDeclHandler oldXmlDeclHandler = xmlDeclHandler;  ELEMENT_TYPE * oldDeclElementType = declElementType;  void *oldUserData = userData;  void *oldHandlerArg = handlerArg;  int oldDefaultExpandInternalEntities = defaultExpandInternalEntities;  void *oldExternalEntityRefHandlerArg = externalEntityRefHandlerArg;#ifdef XML_DTD  int oldParamEntityParsing = paramEntityParsing;#endif  int oldns_triplets = ns_triplets;  if (ns) {    XML_Char tmp[2];    *tmp = namespaceSeparator;    parser = XML_ParserCreate_MM(encodingName, &((Parser *)parser)->m_mem,				 tmp);  }  else {    parser = XML_ParserCreate_MM(encodingName, &((Parser *)parser)->m_mem,				 NULL);  }  if (!parser)    return 0;  startElementHandler = oldStartElementHandler;  endElementHandler = oldEndElementHandler;  characterDataHandler = oldCharacterDataHandler;  processingInstructionHandler = oldProcessingInstructionHandler;  commentHandler = oldCommentHandler;  startCdataSectionHandler = oldStartCdataSectionHandler;  endCdataSectionHandler = oldEndCdataSectionHandler;  defaultHandler = oldDefaultHandler;  unparsedEntityDeclHandler = oldUnparsedEntityDeclHandler;  notationDeclHandler = oldNotationDeclHandler;  startNamespaceDeclHandler = oldStartNamespaceDeclHandler;  endNamespaceDeclHandler = oldEndNamespaceDeclHandler;  notStandaloneHandler = oldNotStandaloneHandler;  externalEntityRefHandler = oldExternalEntityRefHandler;  unknownEncodingHandler = oldUnknownEncodingHandler;  elementDeclHandler = oldElementDeclHandler;  attlistDeclHandler = oldAttlistDeclHandler;  entityDeclHandler = oldEntityDeclHandler;  xmlDeclHandler = oldXmlDeclHandler;  declElementType = oldDeclElementType;  userData = oldUserData;  if (oldUserData == oldHandlerArg)    handlerArg = userData;  else    handlerArg = parser;  if (oldExternalEntityRefHandlerArg != oldParser)    externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg;  defaultExpandInternalEntities = oldDefaultExpandInternalEntities;  ns_triplets = oldns_triplets;#ifdef XML_DTD  paramEntityParsing = oldParamEntityParsing;  if (context) {#endif /* XML_DTD */    if (!dtdCopy(&dtd, oldDtd, parser) || !setContext(parser, context)) {      XML_ParserFree(parser);      return 0;    }    processor = externalEntityInitProcessor;#ifdef XML_DTD  }  else {    dtdSwap(&dtd, oldDtd);    parentParser = oldParser;    XmlPrologStateInitExternalEntity(&prologState);    dtd.complete = 1;    hadExternalDoctype = 1;  }#endif /* XML_DTD */  return parser;}staticvoid destroyBindings(BINDING *bindings, XML_Parser parser){  for (;;) {    BINDING *b = bindings;    if (!b)      break;    bindings = b->nextTagBinding;    FREE(b->uri);    FREE(b);  }}void XML_ParserFree(XML_Parser parser){  for (;;) {    TAG *p;    if (tagStack == 0) {      if (freeTagList == 0)	break;      tagStack = freeTagList;      freeTagList = 0;    }    p = tagStack;    tagStack = tagStack->parent;    FREE(p->buf);    destroyBindings(p->bindings, parser);    FREE(p);  }  destroyBindings(freeBindingList, parser);  destroyBindings(inheritedBindings, parser);  poolDestroy(&tempPool);  poolDestroy(&temp2Pool);#ifdef XML_DTD  if (parentParser) {    if (hadExternalDoctype)      dtd.complete = 0;    dtdSwap(&dtd, &((Parser *)parentParser)->m_dtd);  }#endif /* XML_DTD */  dtdDestroy(&dtd, parser);  FREE((void *)atts);  if (groupConnector)    FREE(groupConnector);  if (buffer)    FREE(buffer);  FREE(dataBuf);  if (unknownEncodingMem)    FREE(unknownEncodingMem);  if (unknownEncodingRelease)    unknownEncodingRelease(unknownEncodingData);  FREE(parser);}void XML_UseParserAsHandlerArg(XML_Parser parser){  handlerArg = parser;}voidXML_SetReturnNSTriplet(XML_Parser parser, int do_nst) {  ns_triplets = do_nst;}void XML_SetUserData(XML_Parser parser, void *p){  if (handlerArg == userData)    handlerArg = userData = p;  else    userData = p;}int XML_SetBase(XML_Parser parser, const XML_Char *p){  if (p) {    p = poolCopyString(&dtd.pool, p);    if (!p)      return 0;    curBase = p;  }  else    curBase = 0;  return 1;}const XML_Char *XML_GetBase(XML_Parser parser){  return curBase;}int XML_GetSpecifiedAttributeCount(XML_Parser parser){  return nSpecifiedAtts;}

⌨️ 快捷键说明

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