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

📄 xmlj_xpath.c

📁 gcc的组建
💻 C
📖 第 1 页 / 共 2 页
字号:
JNIEXPORT jboolean JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathResult_getBooleanValue (JNIEnv *env,                                                           jobject self){  xmlXPathObjectPtr obj;    obj = xmljGetXPathObjectID (env, self);  return obj->boolval;}JNIEXPORT jobject JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathResult_getSingleNodeValue (JNIEnv *env,                                                              jobject self){  xmlXPathObjectPtr obj;    obj = xmljGetXPathObjectID (env, self);  if (obj == NULL)    {      return NULL;    }  if (obj->nodesetval == NULL)    {      return NULL;    }  if (obj->nodesetval->nodeNr > 0)    {      return xmljGetNodeInstance (env, obj->nodesetval->nodeTab[0]);    }  else    {      return NULL;    }}JNIEXPORT jboolean JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathResult_getInvalidIteratorState (JNIEnv *env,                                                                   jobject self){  xmlXPathObjectPtr obj;    obj = xmljGetXPathObjectID (env, self);  return 0; /* TODO */}JNIEXPORT jint JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathResult_getSnapshotLength (JNIEnv *env,                                                             jobject self){  xmlXPathObjectPtr obj;    obj = xmljGetXPathObjectID (env, self);  if (obj == NULL)    {      return -1;    }  if (obj->nodesetval == NULL)    {      return -1;    }  return obj->nodesetval->nodeNr;}JNIEXPORT jobject JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathResult_iterateNext (JNIEnv *env,                                                       jobject self){  xmlXPathObjectPtr obj;    obj = xmljGetXPathObjectID (env, self);  return NULL; /* TODO */}JNIEXPORT jobject JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathResult_snapshotItem (JNIEnv *env,                                                        jobject self,                                                        jint index){  xmlXPathObjectPtr obj;    obj = xmljGetXPathObjectID (env, self);  if (obj == NULL)    {      return NULL;    }  if (obj->nodesetval == NULL)    {      return NULL;    }  if (obj->nodesetval->nodeNr > 0)    {      return xmljGetNodeInstance (env, obj->nodesetval->nodeTab[index]);    }  else    {      return NULL;    }}/* -- GnomeXPathNodeList -- */JNIEXPORT jobject JNICALLJava_gnu_xml_libxmlj_dom_GnomeDocument_getElementsByTagName (JNIEnv *env,                                                             jobject self,                                                             jstring name){  return Java_gnu_xml_libxmlj_dom_GnomeElement_getElementsByTagName (env,                                                                     self,                                                                     name);}JNIEXPORT jobject JNICALLJava_gnu_xml_libxmlj_dom_GnomeElement_getElementsByTagName (JNIEnv *env,                                                             jobject self,                                                             jstring name){  const xmlChar *s_name;  const xmlChar *format;  xmlChar expr[256];  xmlNodePtr node;  xmlXPathContextPtr ctx;  xmlXPathObjectPtr eval = NULL;    node = xmljGetNodeID (env, self);  if (node == NULL)    {      return NULL;    }  s_name = xmljGetStringChars (env, name);  if (xmlStrEqual (s_name, BAD_CAST "*"))    {      format = xmlCharStrdup ("descendant-or-self::*[node-type()=1]");      if (xmlStrPrintf (expr, 256, format) == -1)        {          return NULL;        }    }  else    {      format = xmlCharStrdup ("descendant-or-self::*[name()='%s']");      if (xmlStrPrintf (expr, 256, format, s_name) == -1)        {          return NULL;        }    }  xmlFree ((xmlChar *) s_name);  ctx = xmljCreateXPathContextPtr (node);  if (ctx != NULL)    {      eval = xmlXPathEval (expr, ctx);      xmlXPathFreeContext (ctx);    }  return xmljGetXPathNodeList (env, eval);}JNIEXPORT jobject JNICALLJava_gnu_xml_libxmlj_dom_GnomeDocument_getElementsByTagNameNS (JNIEnv *env,                                                               jobject self,                                                               jstring uri,                                                               jstring localName){  return Java_gnu_xml_libxmlj_dom_GnomeElement_getElementsByTagNameNS (env,                                                                       self,                                                                       uri,                                                                       localName);}JNIEXPORT jobject JNICALLJava_gnu_xml_libxmlj_dom_GnomeElement_getElementsByTagNameNS (JNIEnv *env,                                                               jobject self,                                                               jstring uri,                                                               jstring localName){  const xmlChar *s_uri;  const xmlChar *s_localName;  const xmlChar *format;  xmlChar expr[256];  xmlNodePtr node;  xmlXPathContextPtr ctx;  xmlXPathObjectPtr eval = NULL;    node = xmljGetNodeID (env, self);  if (node == NULL)    {      return NULL;    }  s_uri = xmljGetStringChars (env, uri);  s_localName = xmljGetStringChars (env, localName);  if (uri == NULL)    {      /* namespace URI is empty */      if (xmlStrEqual (s_localName, BAD_CAST "*"))        {          format = xmlCharStrdup ("descendant-or-self::*[namespace-uri()='' and node-type()=1]");          if (xmlStrPrintf (expr, 256, format) == -1)            {              return NULL;            }        }      else        {          format = xmlCharStrdup ("descendant-or-self::*[namespace-uri()='' and local-name()='%s']");          if (xmlStrPrintf (expr, 256, format, s_localName) == -1)            {              return NULL;            }        }    }  else if (xmlStrEqual (s_uri, BAD_CAST "*"))    {      /* matches all namespaces */      if (xmlStrEqual (s_localName, BAD_CAST "*"))        {          format = xmlCharStrdup ("descendant-or-self::*[node-type()=1]");          if (xmlStrPrintf (expr, 256, format) == -1)            {              return NULL;            }        }      else        {          format = xmlCharStrdup ("descendant-or-self::*[local-name()='%s']");          if (xmlStrPrintf (expr, 256, format, s_localName) == -1)            {              return NULL;            }        }    }  else    {      if (xmlStrEqual (s_localName, BAD_CAST "*"))        {          format = xmlCharStrdup ("descendant-or-self::*[namespace-uri()='%s' and node-type()=1]");          if (xmlStrPrintf (expr, 256, format, s_uri) == -1)            {              return NULL;            }        }      else        {          format = xmlCharStrdup ("descendant-or-self::*[namespace-uri()='%s' and local-name()='%s']");          if (xmlStrPrintf (expr, 256, format, s_uri, s_localName) == -1)            {              return NULL;            }        }    }  xmlFree ((xmlChar *) s_uri);  xmlFree ((xmlChar *) s_localName);  ctx = xmljCreateXPathContextPtr (node);  if (ctx != NULL)    {      eval = xmlXPathEval (expr, ctx);      xmlXPathFreeContext (ctx);    }  return xmljGetXPathNodeList (env, eval);}JNIEXPORT void JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathNodeList_free (JNIEnv *env,                                                  jobject self						  __attribute__((__unused__)),                                                  jobject obj){  xmlXPathFreeObject ((xmlXPathObjectPtr) xmljAsPointer (env, obj));}JNIEXPORT jint JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathNodeList_getLength (JNIEnv *env,                                                       jobject self){  xmlXPathObjectPtr obj;    obj = xmljGetXPathObjectID (env, self);  if (obj == NULL)    {      return 0;    }  if (obj->nodesetval == NULL)    {      return 0;    }  return obj->nodesetval->nodeNr;}JNIEXPORT jobject JNICALLJava_gnu_xml_libxmlj_dom_GnomeXPathNodeList_item (JNIEnv *env,                                                  jobject self,                                                  jint index){  xmlXPathObjectPtr obj;    obj = xmljGetXPathObjectID (env, self);  if (obj == NULL)    {      return NULL;    }  if (obj->nodesetval == NULL)    {      return NULL;    }  if (obj->nodesetval->nodeNr > 0)    {      return xmljGetNodeInstance (env, obj->nodesetval->nodeTab[index]);    }  else    {      return NULL;    }}

⌨️ 快捷键说明

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