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

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

?? kxmlparser.java

?? 一個不錯的WML瀏覽器
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* Copyright (c) 2002,2003, Stefan Haustein, Oberhausen, Rhld., Germany * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The  above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */// Contributors: Paul Hackenberger (unterminated entity handling in relaxed mode)package org.kxml2.io;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;import java.util.Hashtable;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;/** A simple, pull based XML parser. This classe replaces the kXML 1    XmlParser class and the corresponding event classes. */public class KXmlParser implements XmlPullParser {    private Object location;	static final private String UNEXPECTED_EOF = "Unexpected EOF";    static final private String ILLEGAL_TYPE = "Wrong event type";    static final private int LEGACY = 999;    static final private int XML_DECL = 998;    // general    private String version;    private Boolean standalone;    private boolean processNsp;    private boolean relaxed;    private Hashtable entityMap;    private int depth;    private String[] elementStack = new String[16];    private String[] nspStack = new String[8];    private int[] nspCounts = new int[4];    // source    private Reader reader;    private String encoding;    private char[] srcBuf;    private int srcPos;    private int srcCount;    private int line;    private int column;    // txtbuffer    private char[] txtBuf = new char[128];    private int txtPos;    // Event-related    private int type;    //private String text;    private boolean isWhitespace;    private String namespace;    private String prefix;    private String name;    private boolean degenerated;    private int attributeCount;    private String[] attributes = new String[16];    private int stackMismatch = 0;    private String error;    /**      * A separate peek buffer seems simpler than managing     * wrap around in the first level read buffer */    private int[] peek = new int[2];    private int peekCount;    private boolean wasCR;    private boolean unresolved;    private boolean token;    public KXmlParser() {        srcBuf =            new char[Runtime.getRuntime().freeMemory() >= 1048576 ? 8192 : 128];    }    private final boolean isProp(String n1, boolean prop, String n2) {        if (!n1.startsWith("http://xmlpull.org/v1/doc/"))            return false;        if (prop)            return n1.substring(42).equals(n2);        else            return n1.substring(40).equals(n2);    }    private final boolean adjustNsp() throws XmlPullParserException {        boolean any = false;        for (int i = 0; i < attributeCount << 2; i += 4) {            // * 4 - 4; i >= 0; i -= 4) {            String attrName = attributes[i + 2];            int cut = attrName.indexOf(':');            String prefix;            if (cut != -1) {                prefix = attrName.substring(0, cut);                attrName = attrName.substring(cut + 1);            }            else if (attrName.equals("xmlns")) {                prefix = attrName;                attrName = null;            }            else                continue;            if (!prefix.equals("xmlns")) {                any = true;            }            else {                int j = (nspCounts[depth]++) << 1;                nspStack = ensureCapacity(nspStack, j + 2);                nspStack[j] = attrName;                nspStack[j + 1] = attributes[i + 3];                if (attrName != null && attributes[i + 3].equals(""))                    error("illegal empty namespace");                //  prefixMap = new PrefixMap (prefixMap, attrName, attr.getValue ());                //System.out.println (prefixMap);                System.arraycopy(                    attributes,                    i + 4,                    attributes,                    i,                    ((--attributeCount) << 2) - i);                i -= 4;            }        }        if (any) {            for (int i = (attributeCount << 2) - 4; i >= 0; i -= 4) {                String attrName = attributes[i + 2];                int cut = attrName.indexOf(':');                if (cut == 0 && !relaxed)                    throw new RuntimeException(                        "illegal attribute name: " + attrName + " at " + this);                else if (cut != -1) {                    String attrPrefix = attrName.substring(0, cut);                    attrName = attrName.substring(cut + 1);                    String attrNs = getNamespace(attrPrefix);                    if (attrNs == null && !relaxed)                        throw new RuntimeException(                            "Undefined Prefix: " + attrPrefix + " in " + this);                    attributes[i] = attrNs;                    attributes[i + 1] = attrPrefix;                    attributes[i + 2] = attrName;                    /*                                        if (!relaxed) {                                            for (int j = (attributeCount << 2) - 4; j > i; j -= 4)                                                if (attrName.equals(attributes[j + 2])                                                    && attrNs.equals(attributes[j]))                                                    exception(                                                        "Duplicate Attribute: {"                                                            + attrNs                                                            + "}"                                                            + attrName);                                        }                        */                }            }        }        int cut = name.indexOf(':');        if (cut == 0)            error("illegal tag name: " + name);        if (cut != -1) {            prefix = name.substring(0, cut);            name = name.substring(cut + 1);        }        this.namespace = getNamespace(prefix);        if (this.namespace == null) {            if (prefix != null)                error("undefined prefix: " + prefix);            this.namespace = NO_NAMESPACE;        }        return any;    }    private final String[] ensureCapacity(String[] arr, int required) {        if (arr.length >= required)            return arr;        String[] bigger = new String[required + 16];        System.arraycopy(arr, 0, bigger, 0, arr.length);        return bigger;    }    private final void error(String desc) throws XmlPullParserException {        if (relaxed) {            if (error == null)                error = "ERR: " + desc;        }        else            exception(desc);    }    private final void exception(String desc) throws XmlPullParserException {        throw new XmlPullParserException(            desc.length() < 100 ? desc : desc.substring(0, 100) + "\n",            this,            null);    }    /**      * common base for next and nextToken. Clears the state, except from      * txtPos and whitespace. Does not set the type variable */    private final void nextImpl() throws IOException, XmlPullParserException {        if (reader == null)            exception("No Input specified");        if (type == END_TAG)            depth--;        while (true) {            attributeCount = -1;			// degenerated needs to be handled before error because of possible			// processor expectations(!)			if (degenerated) {				degenerated = false;				type = END_TAG;				return;			}            if (error != null) {                for (int i = 0; i < error.length(); i++)                    push(error.charAt(i));                //				text = error;                error = null;                type = COMMENT;                return;            }            if (relaxed                && (stackMismatch > 0 || (peek(0) == -1 && depth > 0))) {                int sp = (depth - 1) << 2;                type = END_TAG;                namespace = elementStack[sp];                prefix = elementStack[sp + 1];                name = elementStack[sp + 2];                if (stackMismatch != 1)                    error = "missing end tag /" + name + " inserted";                if (stackMismatch > 0)                    stackMismatch--;                return;            }            prefix = null;            name = null;            namespace = null;            //            text = null;            type = peekType();            switch (type) {                case ENTITY_REF :                    pushEntity();                    return;                case START_TAG :                    parseStartTag(false);                    return;                case END_TAG :                    parseEndTag();                    return;                case END_DOCUMENT :                    return;                case TEXT :                    pushText('<', !token);                    if (depth == 0) {                        if (isWhitespace)                            type = IGNORABLE_WHITESPACE;                        // make exception switchable for instances.chg... !!!!                        //	else                         //    exception ("text '"+getText ()+"' not allowed outside root element");                    }                    return;                default :                    type = parseLegacy(token);                    if (type != XML_DECL)                        return;            }        }    }    private final int parseLegacy(boolean push)        throws IOException, XmlPullParserException {        String req = "";        int term;        int result;        int prev = 0;        read(); // <        int c = read();        if (c == '?') {            if ((peek(0) == 'x' || peek(0) == 'X')                && (peek(1) == 'm' || peek(1) == 'M')) {                if (push) {                    push(peek(0));                    push(peek(1));                }                read();                read();                if ((peek(0) == 'l' || peek(0) == 'L') && peek(1) <= ' ') {                    if (line != 1 || column > 4)                        error("PI must not start with xml");                    parseStartTag(true);                    if (attributeCount < 1 || !"version".equals(attributes[2]))                        error("version expected");                    version = attributes[3];                    int pos = 1;                    if (pos < attributeCount                        && "encoding".equals(attributes[2 + 4])) {                        encoding = attributes[3 + 4];                        pos++;                    }                    if (pos < attributeCount                        && "standalone".equals(attributes[4 * pos + 2])) {                        String st = attributes[3 + 4 * pos];                        if ("yes".equals(st))                            standalone = new Boolean(true);                        else if ("no".equals(st))                            standalone = new Boolean(false);                        else                            error("illegal standalone value: " + st);                        pos++;                    }                    if (pos != attributeCount)                        error("illegal xmldecl");                    isWhitespace = true;                    txtPos = 0;                    return XML_DECL;                }            }            /*            int c0 = read ();                        int c1 = read ();                        int */            term = '?';            result = PROCESSING_INSTRUCTION;        }        else if (c == '!') {            if (peek(0) == '-') {                result = COMMENT;                req = "--";                term = '-';            }            else if (peek(0) == '[') {                result = CDSECT;                req = "[CDATA[";                term = ']';                push = true;            }            else {                result = DOCDECL;                req = "DOCTYPE";                term = -1;            }        }        else {            error("illegal: <" + c);            return COMMENT;        }        for (int i = 0; i < req.length(); i++)            read(req.charAt(i));        if (result == DOCDECL)            parseDoctype(push);        else {            while (true) {                c = read();                if (c == -1){                    error(UNEXPECTED_EOF);                    return COMMENT;                }                if (push)                    push(c);                if ((term == '?' || c == term)                    && peek(0) == term                    && peek(1) == '>')                    break;                prev = c;            }            if (term == '-' && prev == '-')                error("illegal comment delimiter: --->");            read();            read();            if (push && term != '?')                txtPos--;        }        return result;    }    /** precondition: &lt! consumed */    private final void parseDoctype(boolean push)        throws IOException, XmlPullParserException {        int nesting = 1;        boolean quoted = false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜国产精品| 欧美综合天天夜夜久久| 秋霞成人午夜伦在线观看| 亚洲最新视频在线播放| 亚洲女爱视频在线| 亚洲国产精品久久不卡毛片 | 国产精品一区久久久久| 韩国v欧美v日本v亚洲v| 国产传媒欧美日韩成人| av色综合久久天堂av综合| 91麻豆蜜桃一区二区三区| 欧美在线观看你懂的| 91麻豆精品国产91久久久使用方法| 欧美日韩精品欧美日韩精品一 | 国产一区视频在线看| 国产精品亚洲视频| 91色在线porny| 欧美美女一区二区在线观看| 欧美一区二视频| 日本一区二区免费在线| 亚洲女与黑人做爰| 免费观看91视频大全| 国产91高潮流白浆在线麻豆| 99久久er热在这里只有精品66| 欧美亚洲国产一卡| 欧美精品一区二| 亚洲品质自拍视频| 美女在线一区二区| av一二三不卡影片| 91精品在线麻豆| 中文字幕 久热精品 视频在线| 亚洲最色的网站| 成人免费视频app| 欧美三级电影在线看| 久久久久久久av麻豆果冻| 一区二区三区四区av| 精品一区在线看| 日本韩国欧美国产| 久久久美女毛片| 午夜精品成人在线视频| 国产·精品毛片| 欧美日韩一卡二卡三卡| 国产欧美日韩麻豆91| 日本一区中文字幕| 色综合久久精品| 国产日产欧产精品推荐色| 亚洲第一综合色| 色婷婷综合久久久中文字幕| 久久精品欧美日韩精品| 日韩成人免费看| 在线国产电影不卡| 中文字幕一区二区三区色视频| 美女性感视频久久| 欧美日韩dvd在线观看| 一区二区三区中文在线| 成人av午夜影院| 亚洲国产激情av| 国产精品系列在线播放| 久久综合网色—综合色88| 秋霞电影网一区二区| 欧美欧美午夜aⅴ在线观看| 国产精品视频九色porn| 国产美女精品人人做人人爽| 精品欧美乱码久久久久久1区2区| 午夜影视日本亚洲欧洲精品| 91搞黄在线观看| 亚洲精品成人在线| 在线精品视频一区二区| 亚洲精品午夜久久久| 一本色道久久加勒比精品| 综合激情网...| 日本精品视频一区二区| 一区二区在线免费观看| 欧美亚洲精品一区| 亚洲小说春色综合另类电影| 欧美性生活大片视频| 一区二区三区成人| 欧美精品久久久久久久多人混战| 午夜亚洲福利老司机| 欧美精品久久99久久在免费线| 亚洲国产精品久久不卡毛片| 欧美日韩电影一区| 免费观看在线色综合| 欧美刺激午夜性久久久久久久 | 亚洲国产精品成人综合| 丁香激情综合国产| 亚洲欧洲日韩在线| 4438成人网| 激情六月婷婷久久| 久久精品人人做| 色香蕉久久蜜桃| 日韩影院免费视频| 久久婷婷国产综合国色天香| 成人综合在线视频| 一二三四区精品视频| 日韩欧美亚洲一区二区| 国产河南妇女毛片精品久久久| 中文字幕制服丝袜成人av| 在线视频一区二区免费| 麻豆91精品视频| 中文字幕一区二区三区在线不卡| 欧美亚洲日本一区| 国产激情视频一区二区三区欧美| 欧美国产国产综合| 欧美日韩视频一区二区| 国产福利一区二区三区视频在线| 国产精品久久久久久久久免费樱桃 | 日韩一区二区三区av| 国产乱码字幕精品高清av| 亚洲乱码国产乱码精品精的特点 | 日韩精品一区二区三区在线观看| 成人免费毛片a| 午夜精品成人在线视频| 日韩一区日韩二区| 日韩欧美国产综合在线一区二区三区| 成人午夜精品一区二区三区| 五月天网站亚洲| 成人免费一区二区三区在线观看| 欧美人与禽zozo性伦| 成人av一区二区三区| 久久99国内精品| 五月婷婷欧美视频| 亚洲色欲色欲www| 国产欧美综合在线观看第十页| 欧美性大战久久久久久久| 99久久免费精品| 国产精品夜夜嗨| 麻豆专区一区二区三区四区五区| 亚洲男人的天堂一区二区| 欧美国产成人在线| 欧美va亚洲va国产综合| 在线观看www91| 色偷偷88欧美精品久久久| 成人午夜电影网站| 国产精品羞羞答答xxdd| 久久精品免费观看| 欧美aⅴ一区二区三区视频| 亚洲一区在线看| 亚洲一区二区欧美激情| 亚洲人成网站影音先锋播放| 欧美韩国日本综合| 久久亚洲精华国产精华液| 日韩欧美色综合| 欧美一区二区女人| 91精品国产综合久久小美女| 欧美日韩免费视频| 欧美久久久久免费| 欧美色倩网站大全免费| 欧美日韩一区二区三区免费看| 色综合欧美在线| 欧美在线啊v一区| 欧美日韩视频第一区| 欧美视频一区二区三区| 欧美日韩免费电影| 欧美日韩小视频| 欧美一区二区私人影院日本| 91精品国产91久久综合桃花| 欧美一级午夜免费电影| 精品捆绑美女sm三区| 日韩欧美国产麻豆| 久久久久久**毛片大全| 中文成人av在线| 亚洲男人电影天堂| 日韩精品欧美精品| 黄页网站大全一区二区| 成人激情动漫在线观看| 在线观看网站黄不卡| 91.麻豆视频| 精品sm在线观看| 中文字幕一区视频| 亚洲妇女屁股眼交7| 久久99热99| av电影在线不卡| 精品视频1区2区| 久久久99精品免费观看| 国产精品高潮呻吟| 日韩精品免费专区| 国产福利精品一区二区| 日本大香伊一区二区三区| 884aa四虎影成人精品一区| 国产三级久久久| 亚洲综合色噜噜狠狠| 韩国精品主播一区二区在线观看| www.av亚洲| 精品国产污污免费网站入口 | 337p日本欧洲亚洲大胆色噜噜| 亚洲国产精品ⅴa在线观看| 亚洲女与黑人做爰| 九色综合狠狠综合久久| 成年人国产精品| 日韩欧美成人午夜| 亚洲精品国产一区二区精华液| 久久精品国产亚洲aⅴ | 日本电影欧美片| 精品99999| 亚洲成人综合网站| 成人高清视频在线| 精品国产一区二区亚洲人成毛片 | 久久网站最新地址| 亚洲第一福利一区|