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

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

?? xhandler.c

?? 運(yùn)用expat解析XML文件接口C源代碼
?? C
字號(hào):
/**
 *
 * @file     xhandler.c
 * @author   Aleix Conchillo Flaque <aleix@member.fsf.org>
 * @date     Mon Nov 25, 2002 00:21
 * @brief    SCEW Expat handlers
 *
 * $Id: xhandler.c,v 1.3 2007/01/11 08:01:54 zhongyh Exp $
 *
 * @if copyright
 *
 * Copyright (C) 2002, 2003, 2004 Aleix Conchillo Flaque
 *
 * SCEW 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.
 *
 * SCEW 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 *
 * @endif
 */

#include "xhandler.h"

#include "xparser.h"

#include "str.h"

#include <stdio.h>

void
xmldecl_handler(void* data, XML_Char const* version, XML_Char const* encoding,
                int standalone)
{
    scew_parser* parser = (scew_parser*) data;

    /* Avoid warning: standalone is unused */
    (void) standalone;

    if (parser == NULL)
    {
        return;
    }

    if (parser->tree == NULL)
    {
        parser->tree = scew_tree_create();
    }

    if (parser->tree == NULL)
    {
        return;
    }

    if (version != NULL)
    {
        parser->tree->version = scew_strdup(version);
    }
    if (encoding != NULL)
    {
        parser->tree->encoding = scew_strdup(encoding);
    }

    /* by now, we ignore standalone attribute */
}

void
start_handler(void* data, XML_Char const* elem, XML_Char const** attr)
{
    int i = 0;
    scew_parser* parser = (scew_parser*) data;

    if (parser == NULL)
    {
        return;
    }

    if ((parser->tree == NULL) || (scew_tree_root(parser->tree) == NULL))
    {
        if (parser->tree == NULL)
        {
            parser->tree = scew_tree_create();
        }
        parser->current = scew_tree_add_root(parser->tree, elem);
    }
    else
    {
        stack_push(&parser->stack, parser->current);
        parser->current = scew_element_add(parser->current, elem);
    }

    for (i = 0; attr[i]; i += 2)
    {
        scew_element_add_attr_pair(parser->current, attr[i], attr[i + 1]);
    }
}

void
end_handler(void* data, XML_Char const* elem)
{
    XML_Char* contents = NULL;
    scew_element* current = NULL;
    scew_parser* parser = (scew_parser*) data;

    /* Avoid warning: elem is unused */
    (void) elem;

    if (parser == NULL)
    {
        return;
    }

    current = parser->current;
    if ((current != NULL) && (current->contents != NULL))
    {
        if (parser->ignore_whitespaces)
        {
            scew_strtrim(current->contents);
            if (scew_strlen(current->contents) == 0)
            {
                EXPAT_FREE(current->contents);
                current->contents = NULL;
            }
        }
        else
        {
            contents = scew_strdup(current->contents);
            scew_strtrim(contents);
            if (scew_strlen(contents) == 0)
            {
                EXPAT_FREE(current->contents);
                current->contents = NULL;
            }
            EXPAT_FREE(contents);
        }
    }
    parser->current = stack_pop(&parser->stack);
}

void
char_handler(void* data, XML_Char const* s, int len)
{
    int total = 0;
    int total_old = 0;
    scew_element* current = NULL;
    scew_parser* parser = (scew_parser*) data;

    if (parser == NULL)
    {
        return;
    }

    current = parser->current;

    if (current == NULL)
    {
        return;
    }

    if (current->contents != NULL)
    {
        total_old = scew_strlen(current->contents);
    }
    total = (total_old + len + 1) * sizeof(XML_Char);
    current->contents = (XML_Char*) SCEW_REALLOC(current->contents, total);

    if (total_old == 0)
    {
        current->contents[0] = '\0';
    }

    scew_strncat(current->contents, s, len);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人v欧美综合天堂下载| 亚洲成人激情综合网| 欧美在线短视频| 激情综合五月天| 一区二区三区免费观看| 久久久精品影视| 91精品国产一区二区人妖| 欧美性猛交一区二区三区精品| 美女一区二区三区| 亚洲电影你懂得| 中文字幕亚洲区| 久久综合久色欧美综合狠狠| 欧美欧美欧美欧美首页| 91美女视频网站| 国产成a人亚洲精品| 精品一区二区三区免费播放| 午夜视频一区二区三区| 一区二区三区精密机械公司| 国产精品乱人伦| 久久久久九九视频| 精品国内二区三区| 日韩欧美一二三四区| 欧美久久久久免费| 欧美伊人精品成人久久综合97| 99国产欧美久久久精品| 粉嫩av一区二区三区在线播放 | 精品日韩在线一区| 欧美性欧美巨大黑白大战| 色诱视频网站一区| 99久久精品国产麻豆演员表| 国产成人精品亚洲午夜麻豆| 韩国av一区二区三区四区 | 久久丁香综合五月国产三级网站| 一区二区三区成人在线视频| 亚洲日本中文字幕区| 亚洲一卡二卡三卡四卡无卡久久 | 老司机午夜精品| 国产真实乱偷精品视频免| 国产免费观看久久| 国产日韩精品一区二区三区 | 国产精品国产自产拍高清av王其 | 欧美一区二区视频网站| 欧美男同性恋视频网站| 欧美日韩国产123区| 欧美猛男男办公室激情| 在线观看91精品国产麻豆| 欧美精品一卡两卡| 日韩欧美国产午夜精品| 久久综合久色欧美综合狠狠| 国产三区在线成人av| 亚洲国产岛国毛片在线| 中文字幕在线观看不卡视频| 自拍偷拍亚洲激情| 亚洲免费观看高清| 亚洲综合色成人| 日本欧美久久久久免费播放网| 热久久一区二区| 国产在线精品一区二区夜色| 一本一道久久a久久精品| 色哟哟国产精品| 欧美色倩网站大全免费| 日韩午夜激情av| 国产亚洲精品aa| 亚洲日本va午夜在线影院| 亚洲永久精品大片| 日本成人在线一区| 国产黄色精品视频| 色先锋资源久久综合| 欧美肥胖老妇做爰| 国产日产亚洲精品系列| 亚洲精品乱码久久久久久黑人 | proumb性欧美在线观看| 欧美在线观看你懂的| 精品国产青草久久久久福利| 国产精品三级av在线播放| 亚洲一二三四在线观看| 美腿丝袜在线亚洲一区| 成人黄页在线观看| 欧美日韩性生活| 久久久99精品久久| 亚洲愉拍自拍另类高清精品| 韩国成人精品a∨在线观看| 91蜜桃网址入口| 日韩欧美国产综合一区| 亚洲美女少妇撒尿| 久久国产精品无码网站| 色综合久久综合网欧美综合网| 91精品国产综合久久久久久| 国产精品国产三级国产aⅴ原创| 五月婷婷激情综合网| 粗大黑人巨茎大战欧美成人| 欧美三级日韩在线| 国产日本欧洲亚洲| 热久久一区二区| 色网综合在线观看| 亚洲激情成人在线| 国产一区二区三区精品欧美日韩一区二区三区| 不卡的看片网站| 久久久蜜臀国产一区二区| 亚洲福利视频一区二区| aaa国产一区| wwwwww.欧美系列| 香蕉久久夜色精品国产使用方法 | 色悠久久久久综合欧美99| 精品国产欧美一区二区| 亚洲成人午夜影院| 一本高清dvd不卡在线观看| 久久久欧美精品sm网站| 麻豆视频一区二区| 欧美日韩国产三级| 亚洲免费av观看| 成人激情文学综合网| 久久久综合九色合综国产精品| 日本不卡高清视频| 欧美丝袜丝交足nylons| 亚洲男女一区二区三区| 成人开心网精品视频| 久久婷婷综合激情| 国内精品免费**视频| 日韩写真欧美这视频| 日韩不卡免费视频| 欧美三级中文字幕| 一二三区精品视频| 94色蜜桃网一区二区三区| 国产婷婷色一区二区三区| 国模娜娜一区二区三区| 久久综合色婷婷| 国产毛片一区二区| 久久精品一区二区| 国产大陆精品国产| 久久久久久一级片| 国产一区二三区| 亚洲精品一线二线三线| 美国精品在线观看| 精品免费日韩av| 精品在线播放免费| 精品奇米国产一区二区三区| 美女国产一区二区三区| 精品免费日韩av| 国产精品影视在线观看| 一区二区三区在线免费视频| 日韩欧美123| 在线免费不卡视频| av激情综合网| 欧美日韩成人在线一区| 丝袜美腿亚洲一区二区图片| 制服丝袜在线91| 久久精品av麻豆的观看方式| 精品人在线二区三区| 国产一区二区三区在线观看精品 | 欧美精品丝袜中出| 日本一道高清亚洲日美韩| 欧美xxx久久| 国产精品一区二区x88av| 日本一二三不卡| 在线观看免费亚洲| 视频一区视频二区中文| 精品国精品国产尤物美女| 国产高清不卡二三区| 1024国产精品| 777亚洲妇女| 国内不卡的二区三区中文字幕| 国产欧美日韩在线视频| 91免费看视频| 日韩精品一二三区| 久久久精品一品道一区| 色婷婷亚洲综合| 日韩国产高清影视| 久久久久久久久蜜桃| 91丝袜美腿高跟国产极品老师| 亚洲午夜视频在线观看| 久久综合久色欧美综合狠狠| 99久久久精品| 麻豆精品在线看| 国产精品午夜在线观看| 欧美日韩一区不卡| 国产毛片精品视频| 亚洲自拍偷拍网站| 欧美成人精品福利| 99久久久久久99| 美女免费视频一区二区| 亚洲日穴在线视频| 欧美电影免费观看高清完整版在线 | 欧美艳星brazzers| 狠狠色狠狠色综合日日91app| 中文字幕欧美一区| 欧美成人官网二区| 91黄色免费看| 国产精品一卡二卡| 亚洲电影欧美电影有声小说| 国产欧美一区二区精品性色| 欧美精品第1页| 欧美日韩一区精品| 成人中文字幕电影| 日本中文在线一区| 亚洲欧洲日产国码二区| 欧美精品一区二区三| 欧美日韩一区二区三区四区 | 成人免费观看av| 久久精品二区亚洲w码|