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

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

?? nxml_namespace.c

?? libnxml-no-curl-簡化版2007-07-01,一個別很不錯的XML生成和解析程序。
?? C
字號:
/* nXml - Copyright (C) 2005 bakunin - Andrea Marchesini  *                                <bakunin@autistici.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. *  * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */#ifdef HAVE_CONFIG_H#include <config.h>#else# error Use configure; make; make install#endif#include "nxml.h"#include "nxml_internal.h"struct __nxml_data_ns_t{  nxml_namespace_t *ns;  struct __nxml_data_ns_t *next;};static void__nxml_namespace_free_item (nxml_data_t * e){  nxml_namespace_t *ns;  nxml_data_t *child;  while (e->ns_list)    {      ns = e->ns_list->next;      if (e->ns_list->prefix)	free (e->ns_list->prefix);      if (e->ns_list->ns)	free (e->ns_list->ns);      free (e->ns_list);      e->ns_list = ns;    }  e->ns = NULL;  child = e->children;  while (child)    {      __nxml_namespace_free_item (child);      child = child->next;    }}static void__nxml_namespace_free (nxml_t * nxml){  nxml_data_t *e;  e = nxml->data;  while (e)    {      __nxml_namespace_free_item (e);      e = e->next;    }}int__nxml_namespace_parse_add (nxml_data_t * data, char *prefix, char *namespace){  nxml_namespace_t *ns;  if (!(ns = (nxml_namespace_t *) malloc (sizeof (nxml_namespace_t))))    return 1;  memset (ns, 0, sizeof (nxml_namespace_t));  if (prefix && !(ns->prefix = strdup (prefix)))    {      free (ns);      return 1;    }  if (!(ns->ns = strdup (namespace)))    {      if (ns->prefix)	free (ns->prefix);      free (ns);      return 1;    }  ns->next = data->ns_list;  data->ns_list = ns;  return 0;}static int__nxml_namespace_find_item (nxml_t * nxml, nxml_data_t * e){  nxml_data_t *child;  nxml_attr_t *att;  att = e->attributes;  while (att)    {      if (!strcmp (att->name, "xmlns"))	{	  if (__nxml_namespace_parse_add (e, NULL, att->value))	    {	      __nxml_namespace_free (nxml);	      return 1;	    }	}      else if (!strncmp (att->name, "xmlns:", 6))	{	  if (__nxml_namespace_parse_add (e, att->name + 6, att->value))	    {	      __nxml_namespace_free (nxml);	      return 1;	    }	}      att = att->next;    }  child = e->children;  while (child)    {      if (child->type == NXML_TYPE_ELEMENT)	__nxml_namespace_find_item (nxml, child);      child = child->next;    }  return 0;}static int__nxml_namespace_find (nxml_t * nxml){  nxml_data_t *e;  e = nxml->data;  while (e)    {      if (e->type == NXML_TYPE_ELEMENT)	__nxml_namespace_find_item (nxml, e);      e = e->next;    }  return 0;}static void__nxml_namespace_associate_attribute (struct __nxml_data_ns_t *list,				      nxml_attr_t * e){  int i;  int len = strlen (e->name);  int k;  for (i = k = 0; i < len; i++)    if (e->name[i] == ':')      {	k = i;	break;      }  if (!k)    {      while (list)	{	  if (!list->ns->prefix)	    {	      e->ns = list->ns;	      return;	    }	  list = list->next;	}      return;    }  else    {      while (list)	{	  if (list->ns->prefix && !strncmp (list->ns->prefix, e->name, k))	    {	      char *a = strdup (e->name + strlen (list->ns->prefix) + 1);	      if (!a)		return;	      free (e->name);	      e->name = a;	      e->ns = list->ns;	      return;	    }	  list = list->next;	}    }}static void__nxml_namespace_associate_item (struct __nxml_data_ns_t *list,				 nxml_data_t * e){  int i;  int len;  int k;  nxml_attr_t *attr;  attr = e->attributes;  while (attr)    {      __nxml_namespace_associate_attribute (list, attr);      attr = attr->next;    }  len = strlen (e->value);  for (i = k = 0; i < len; i++)    if (e->value[i] == ':')      {	k = i;	break;      }  if (!k)    {      while (list)	{	  if (!list->ns->prefix)	    {	      e->ns = list->ns;	      return;	    }	  list = list->next;	}      return;    }  else    {      while (list)	{	  if (list->ns->prefix && !strncmp (list->ns->prefix, e->value, k))	    {	      char *a = strdup (e->value + strlen (list->ns->prefix) + 1);	      if (!a)		return;	      free (e->value);	      e->value = a;	      e->ns = list->ns;	      return;	    }	  list = list->next;	}    }}static void__nxml_namespace_associate (struct __nxml_data_ns_t **list,			    nxml_data_t * root){  nxml_data_t *e;  nxml_namespace_t *ns;  struct __nxml_data_ns_t *tmp, *old;  ns = root->ns_list;  while (ns)    {      if (!	  (tmp =	   (struct __nxml_data_ns_t *)	   malloc (sizeof (struct __nxml_data_ns_t))))	return;      memset (tmp, 0, sizeof (struct __nxml_data_ns_t));      tmp->ns = ns;      tmp->next = (*list);      (*list) = tmp;      ns = ns->next;    }  __nxml_namespace_associate_item (*list, root);  e = root->children;  while (e)    {      if (e->type == NXML_TYPE_ELEMENT)	__nxml_namespace_associate (list, e);      e = e->next;    }  ns = root->ns_list;  while (ns)    {      tmp = *list;      old = NULL;      while (tmp)	{	  if (tmp->ns == ns)	    {	      if (old)		old->next = tmp->next;	      else		*list = tmp->next;	      free (tmp);	      break;	    }	  old = tmp;	  tmp = tmp->next;	}      ns = ns->next;    }}static void__nxml_namespace_connect (nxml_t * nxml){  nxml_data_t *e;  struct __nxml_data_ns_t *list = NULL;  e = nxml->data;  while (e)    {      if (e->type == NXML_TYPE_ELEMENT)	__nxml_namespace_associate (&list, e);      e = e->next;    }}void__nxml_namespace_parse (nxml_t * nxml){  __nxml_namespace_free (nxml);  if (__nxml_namespace_find (nxml))    return;  __nxml_namespace_connect (nxml);}/* EOF */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品成人一区二区三区四区| av电影天堂一区二区在线观看| ...xxx性欧美| 亚洲国产高清在线观看视频| 日本一区二区综合亚洲| 久久久精品免费观看| 国产性色一区二区| 日韩伦理电影网| 亚洲午夜三级在线| 丝袜a∨在线一区二区三区不卡| 午夜精品久久久久影视| 日韩精彩视频在线观看| 日本美女一区二区| 韩国视频一区二区| av不卡在线播放| 欧美丝袜丝nylons| 日韩精品专区在线影院重磅| 久久久久国产成人精品亚洲午夜| 国产欧美日韩三区| 亚洲小说欧美激情另类| 国产激情一区二区三区| 不卡免费追剧大全电视剧网站| 91免费国产在线观看| 欧美日韩国产美女| 国产日产精品一区| 一级女性全黄久久生活片免费| 图片区小说区国产精品视频| 久久精品国产澳门| 一本色道久久综合精品竹菊| 欧美一区二区三区四区高清| 久久综合色8888| 亚洲日本va午夜在线影院| 奇米精品一区二区三区四区| 成人深夜视频在线观看| 在线不卡a资源高清| 欧美国产综合一区二区| 亚洲国产人成综合网站| 国产毛片精品视频| 7777精品伊人久久久大香线蕉的| 精品成人一区二区三区四区| 一区二区三区在线视频观看| 韩国欧美国产一区| 欧美色图一区二区三区| 欧美激情一二三区| 美女脱光内衣内裤视频久久网站| 91影视在线播放| 国产午夜精品理论片a级大结局| 一区二区三区四区不卡在线 | 91片在线免费观看| 日韩西西人体444www| 亚洲色图在线看| 春色校园综合激情亚洲| 欧美三级视频在线观看 | 91免费版在线| 国产欧美久久久精品影院| 琪琪久久久久日韩精品| 欧美视频三区在线播放| 亚洲蜜臀av乱码久久精品| 成人美女在线视频| 久久亚洲精精品中文字幕早川悠里 | 日韩精品电影一区亚洲| 91亚洲精品久久久蜜桃网站| 久久久蜜桃精品| 国产一区二区免费看| 日韩精品一区二区三区视频| 日韩精品电影在线观看| 欧美日本在线播放| 亚洲一区二区三区中文字幕在线| 不卡视频在线看| 亚洲图片欧美激情| 99re免费视频精品全部| 国产精品女人毛片| 99国产精品久久久久久久久久久| 国产精品久久久久久久久免费丝袜| 国产精品99久久不卡二区| 精品美女一区二区| 狠狠色丁香久久婷婷综合丁香| 日韩欧美一级二级| 极品美女销魂一区二区三区免费| 日韩精品一区二区三区视频 | 欧美日韩国产一区二区三区地区| 国产精品久久久久久久久果冻传媒| 国产乱码精品1区2区3区| 日本一区二区三区视频视频| 成人一区二区三区视频| 国产精品久久久久国产精品日日| 99精品视频一区二区三区| 亚洲免费大片在线观看| 欧美色综合网站| 久久成人免费日本黄色| 337p粉嫩大胆色噜噜噜噜亚洲| 国产一区亚洲一区| 1024成人网| 69av一区二区三区| 国产一区二区美女诱惑| 自拍视频在线观看一区二区| 欧美综合久久久| 日本不卡在线视频| 国产精品系列在线| 欧美日韩成人综合| 国产精品 日产精品 欧美精品| 国产精品久久久久影院色老大| 日本乱人伦aⅴ精品| 免费成人在线观看视频| 国产精品麻豆99久久久久久| 欧美日韩日日骚| 国产馆精品极品| 亚洲福利电影网| 久久精品视频在线免费观看| 91电影在线观看| 国产乱人伦偷精品视频免下载| 一区二区三区高清不卡| 久久嫩草精品久久久精品一| 91美女片黄在线观看91美女| 久88久久88久久久| 亚洲女人****多毛耸耸8| 精品美女一区二区| 欧美日韩亚州综合| 成人午夜精品一区二区三区| 偷拍与自拍一区| 国产精品18久久久| 日韩影视精彩在线| 亚洲精品自拍动漫在线| 欧美xxxxxxxx| 欧美美女一区二区三区| 成人激情文学综合网| 久久精品国产精品亚洲精品| 一区二区三区在线视频免费观看| 久久精品一区二区三区av| 678五月天丁香亚洲综合网| 日本乱码高清不卡字幕| 不卡一区二区三区四区| 国产成人午夜99999| 免费的国产精品| 日韩精品一卡二卡三卡四卡无卡| 亚洲啪啪综合av一区二区三区| 欧美国产综合一区二区| 精品不卡在线视频| 欧美v日韩v国产v| 欧美一区二区三区视频在线 | 精品盗摄一区二区三区| 欧美精品自拍偷拍| 欧美精品一卡两卡| 欧美精品一卡二卡| 91精品国产色综合久久不卡电影| 色综合久久99| 色94色欧美sute亚洲13| 色激情天天射综合网| 91老师片黄在线观看| 99国产精品99久久久久久| 成人av网在线| 色综合一个色综合| 欧美写真视频网站| 欧美精品久久天天躁| 欧美美女激情18p| 91精品国产麻豆国产自产在线| 欧美日韩在线播放三区| 欧美日韩在线观看一区二区| 国产午夜亚洲精品理论片色戒| 国产午夜精品一区二区三区视频| 国产三区在线成人av| 亚洲国产高清aⅴ视频| 综合电影一区二区三区| 伊人色综合久久天天人手人婷| 一区二区三区在线观看动漫 | 极品销魂美女一区二区三区| 蜜桃视频免费观看一区| 国产精品99久久久久久宅男| 北条麻妃国产九九精品视频| 色诱亚洲精品久久久久久| 欧美丝袜丝交足nylons| 日韩欧美成人一区| 国产女主播视频一区二区| 亚洲精品国产一区二区精华液| 亚洲一区二区高清| 国内不卡的二区三区中文字幕| 成人av午夜影院| 欧美片网站yy| 国产精品你懂的| 亚洲成人av资源| 国产真实乱子伦精品视频| 91女神在线视频| 91精品免费在线观看| 国产视频在线观看一区二区三区| 亚洲免费三区一区二区| 蜜桃视频第一区免费观看| 成人h精品动漫一区二区三区| 欧美综合一区二区三区| 国产校园另类小说区| 视频一区视频二区中文| www.性欧美| 精品免费日韩av| 亚洲一区二区三区四区在线免费观看 | 久久99国产精品麻豆| 99视频在线精品| 精品成a人在线观看| 性做久久久久久免费观看| 国产99久久久国产精品潘金| 欧美日韩亚洲国产综合| 亚洲欧美自拍偷拍|