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

📄 xmlj_sax.c

📁 gcc的组建
💻 C
📖 第 1 页 / 共 3 页
字号:
      j_systemId = xmljNewString (env, systemId);      (*env)->CallVoidMethod (env,                              target,                              sax->externalEntityDecl,                              j_name,                              j_publicId,                              j_systemId);    }}voidxmljSAXNotationDecl (void *vctx,                     const xmlChar * name,                     const xmlChar * publicId,                     const xmlChar * systemId){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  jstring j_name;  jstring j_publicId;  jstring j_systemId;  xmlSAX2NotationDecl (vctx, name, publicId, systemId);  ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  xmljCheckWellFormed (ctx);  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->notationDecl == NULL)    {      sax->notationDecl =        xmljGetMethodID (env,                         target,                         "notationDecl",                         "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");      if (sax->notationDecl == NULL)        {          return;        }    }  j_name = xmljNewString (env, name);  j_publicId = xmljNewString (env, publicId);  j_systemId = xmljNewString (env, systemId);  /* Invoke the method */  (*env)->CallVoidMethod (env,                          target,                          sax->notationDecl,                          j_name,                          j_publicId,                          j_systemId);}voidxmljSAXAttributeDecl (void *vctx,                      const xmlChar * elem,                      const xmlChar * fullName,                      int type,                      int def,                      const xmlChar * defaultValue,                      xmlEnumerationPtr tree){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  jstring j_eName;  jstring j_aName;  jstring j_type;  jstring j_mode;  jstring j_value;  xmlSAX2AttributeDecl (vctx, elem, fullName, type, def, defaultValue, tree);  ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  xmljCheckWellFormed (ctx);  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->attributeDecl == NULL)    {      sax->attributeDecl =        xmljGetMethodID (env,                         target,                         "attributeDecl",                         "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");      if (sax->attributeDecl == NULL)        {          return;        }    }  j_eName = xmljNewString (env, elem);  j_aName = xmljNewString (env, fullName);  j_type = xmljAttributeTypeName (env, type);  j_mode = xmljAttributeModeName (env, def);  j_value = xmljNewString (env, defaultValue);  (*env)->CallVoidMethod (env,                          target,                          sax->attributeDecl,                          j_eName,                          j_aName,                          j_type,                          j_mode,                          j_value);}voidxmljSAXElementDecl (void *vctx,                    const xmlChar * name,                    int type,                    xmlElementContentPtr content){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  jstring j_name;  jstring j_model;  xmlSAX2ElementDecl (vctx, name, type, content);  ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  xmljCheckWellFormed (ctx);  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->elementDecl == NULL)    {      sax->elementDecl =        xmljGetMethodID (env,                         target,                         "elementDecl",                         "(Ljava/lang/String;Ljava/lang/String;)V");      if (sax->elementDecl == NULL)        {          return;        }    }  j_name = xmljNewString (env, name);  j_model = NULL;		/* TODO */  (*env)->CallVoidMethod (env,                          target,                          sax->elementDecl,                          j_name,                          j_model);}voidxmljSAXUnparsedEntityDecl (void *vctx,                           const xmlChar * name,                           const xmlChar * publicId,                           const xmlChar * systemId,                           const xmlChar * notationName){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  jstring j_name;  jstring j_publicId;  jstring j_systemId;  jstring j_notationName;  xmlSAX2UnparsedEntityDecl (vctx, name, publicId, systemId, notationName);    ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  xmljCheckWellFormed (ctx);  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->unparsedEntityDecl == NULL)    {      sax->unparsedEntityDecl =        xmljGetMethodID (env,                         target,                         "unparsedEntityDecl",                         "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");      if (sax->unparsedEntityDecl == NULL)        {          return;        }    }  j_name = xmljNewString (env, name);  j_publicId = xmljNewString (env, publicId);  j_systemId = xmljNewString (env, systemId);  j_notationName = xmljNewString (env, notationName);  (*env)->CallVoidMethod (env,                          target,                          sax->unparsedEntityDecl,                          j_name,                          j_publicId,                          j_systemId,                          j_notationName);}voidxmljSAXSetDocumentLocator (void *vctx, xmlSAXLocatorPtr loc){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  xmlSAX2SetDocumentLocator (vctx, loc);  ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  if (target == NULL)    {      /* No Java parse context */      return;    }  /* Update locator on sax context */  sax->loc = loc;  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->setDocumentLocator == NULL)    {      sax->setDocumentLocator = xmljGetMethodID (env,                                                 target,                                                 "setDocumentLocator",                                                 "(Ljava/lang/Object;Ljava/lang/Object;)V");      if (sax->setDocumentLocator == NULL)        {          return;        }    }  (*env)->CallVoidMethod (env,                          target,                          sax->setDocumentLocator,                          xmljAsField (env, ctx),                          xmljAsField (env, loc));}voidxmljSAXStartDocument (void *vctx){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  xmlSAX2StartDocument (vctx);  ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  xmljCheckWellFormed (ctx);  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->startDocument == NULL)    {      sax->startDocument = xmljGetMethodID (env,                                            target,                                            "startDocument",                                            "(Z)V");      if (sax->startDocument == NULL)        {          return;        }    }  (*env)->CallVoidMethod (env,                          target,                          sax->startDocument,                          ctx->standalone);}voidxmljSAXEndDocument (void *vctx){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  xmlSAX2EndDocument (vctx);  ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  xmljCheckWellFormed (ctx);  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->endDocument == NULL)    {      sax->endDocument = xmljGetMethodID (env,                                          target,                                          "endDocument",                                          "()V");      if (sax->endDocument == NULL)        {          return;        }    }  (*env)->CallVoidMethod (env,                          target,                          sax->endDocument);}voidxmljSAXStartElement (void *vctx,                     const xmlChar * name,                     const xmlChar ** attrs){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  jstring j_name;  jobjectArray j_attrs;  jstring j_attr;  jsize len;  xmlSAX2StartElement (vctx, name, attrs);  ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  xmljCheckWellFormed (ctx);  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->startElement == NULL)    {      sax->startElement =        xmljGetMethodID (env,                         target,                         "startElement",                         "(Ljava/lang/String;[Ljava/lang/String;)V");      if (sax->startElement == NULL)        {          return;        }    }  j_name = xmljNewString (env, name);  /* build attributes array */  len = 0;  for (len = 0; attrs && attrs[len]; len++)    {    }  if (len)    {      if (sax->stringClass == NULL)        {          sax->stringClass = (*env)->FindClass (env, "java/lang/String");          if (sax->stringClass == NULL)            {              fprintf (stderr, "Can't find java.lang.String class!\n");              return;            }        }      j_attrs = (*env)->NewObjectArray (env, len, sax->stringClass, NULL);      if (j_attrs == NULL)        {          fprintf (stderr, "Can't allocate attributes array!\n");          return;        }      len = 0;      for (len = 0; attrs && attrs[len]; len++)        {          j_attr = xmljNewString (env, attrs[len]);          (*env)->SetObjectArrayElement (env, j_attrs, len, j_attr);        }            (*env)->CallVoidMethod (env,                              target,                              sax->startElement,                              j_name,                              j_attrs);      (*env)->DeleteLocalRef (env, j_attrs);    }  else    {      (*env)->CallVoidMethod (env,                              target,                              sax->startElement,                              j_name,                              NULL);          }}voidxmljSAXEndElement (void *vctx,                   const xmlChar * name){  xmlParserCtxtPtr ctx;  SAXParseContext *sax;  JNIEnv *env;  jobject target;  jstring j_name;  xmlSAX2EndElement (vctx, name);  ctx = (xmlParserCtxtPtr) vctx;  sax = (SAXParseContext *) ctx->_private;  env = sax->env;  target = sax->obj;  xmljCheckWellFormed (ctx);  if ((*env)->ExceptionOccurred (env))    {      return;    }  if (sax->endElement == NULL)    {      sax->endElement = xmljGetMethodID (env,                                         target,                                         "endElement",                                         "(Ljava/lang/String;)V");      if (sax->endElement == NULL)        {          return;        }    }  j_name = xmljNewString (env, name);  (*env)->CallVoidMethod (env,                          target,                          sax->endElement,                          j_name);

⌨️ 快捷键说明

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