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

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

?? xmltokener.java

?? AJAX基礎(chǔ)編程--源代碼
?? JAVA
字號:
package org.json;

/*
Copyright (c) 2002 JSON.org

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 shall be used for Good, not Evil.

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.
*/

import java.text.ParseException;

/**
 * The XMLTokener extends the JSONTokener to provide additional methods
 * for the parsing of XML texts.
 * @author JSON.org
 * @version 0.1
 */
public class XMLTokener extends JSONTokener {


   /** The table of entity values. It initially contains Character values for
    * amp, apos, gt, lt, quot.
    */
   public static final java.util.HashMap entity;

   static {
       entity = new java.util.HashMap(8);
       entity.put("amp",  XML.AMP);
       entity.put("apos", XML.APOS);
       entity.put("gt",   XML.GT);
       entity.put("lt",   XML.LT);
       entity.put("quot", XML.QUOT);
   }

    /**
     * Construct an XMLTokener from a string.
     * @param s A source string.
     */
    public XMLTokener(String s) {
        super(s);
    }


    /**
     * Get the next XML outer token, trimming whitespace. There are two kinds
     * of tokens: the '<' character which begins a markup tag, and the content
     * text between markup tags.
     *
     * @return  A string, or a '<' Character, or null if there is no more
     * source text.
     * @throws ParseException
     */
    public Object nextContent() throws ParseException {
        char         c;
        StringBuffer sb;
        do {
            c = next();
        } while (Character.isWhitespace(c));
        if (c == 0) {
            return null;
        }
        if (c == '<') {
            return XML.LT;
        }
        sb = new StringBuffer();
        while (true) {
            if (c == '<' || c == 0) {
                back();
                return sb.toString().trim();
            }
            if (c == '&') {
                sb.append(nextEntity(c));
            } else {
                sb.append(c);
            }
            c = next();
        }
    }


    /**
     * Return the next entity. These entities are translated to Characters:
     *     &amp;  &apos;  &gt;  &lt;  &quot;
     * @param a An ampersand character.
     * @return  A Character or an entity String if the entity is not recognized.
     * @throws ParseException Missing ';' in XML entity
     */
    public Object nextEntity(char a) throws ParseException {
        StringBuffer sb = new StringBuffer();
        while (true) {
            char c = next();
            if (Character.isLetter(c)) {
                sb.append(Character.toLowerCase(c));
            } else if (c == ';') {
                break;
            } else {
                throw syntaxError("Missing ';' in XML entity: &" + sb);
            }
        }
        String s = sb.toString();
        Object e = entity.get(s);
        if (e != null) {
            return e;
        } else {
            return a + s + ";";
        }
    }


    /**
     * Returns the next XML meta token. This is used for skipping over <!...>
     * and <?...?> structures.
     * @return Syntax characters (< > / = ! ?) are returned as Character, and
     * strings and names are returned as Boolean. We don't care what the
     * values actually are.
     * @throws ParseException
     */
    public Object nextMeta() throws ParseException {
        char c;
        char q;
        do {
            c = next();
        } while (Character.isWhitespace(c));
        switch (c) {
        case 0:
            throw syntaxError("Misshaped meta tag.");
        case '<':
            return XML.LT;
        case '>':
            return XML.GT;
        case '/':
            return XML.SLASH;
        case '=':
            return XML.EQ;
        case '!':
            return XML.BANG;
        case '?':
            return XML.QUEST;
        case '"':
        case '\'':
            q = c;
            while (true) {
                c = next();
                if (c == 0) {
                    throw syntaxError("Unterminated string.");
                }
                if (c == q) {
                    return Boolean.TRUE;
                }
            }
        default:
            while (true) {
                c = next();
                if (Character.isWhitespace(c)) {
                    return Boolean.TRUE;
                }
                switch (c) {
                case 0:
                case '<':
                case '>':
                case '/':
                case '=':
                case '!':
                case '?':
                case '"':
                case '\'':
                    back();
                    return Boolean.TRUE;
                }
            }
        }
    }


    /**
     * Get the next XML Token. These tokens are found inside of angle
     * brackets. It may be one of these characters: / > = ! ? or it may be a
     * string wrapped in single quotes or double quotes, or it may be a name.
     * @return a String or a Character.
     * @throws ParseException
     */
    public Object nextToken() throws ParseException {
        char c;
        char q;
        StringBuffer sb;
        do {
            c = next();
        } while (Character.isWhitespace(c));
        switch (c) {
        case 0:
            throw syntaxError("Misshaped element.");
        case '<':
            throw syntaxError("Misplaced '<'.");
        case '>':
            return XML.GT;
        case '/':
            return XML.SLASH;
        case '=':
            return XML.EQ;
        case '!':
            return XML.BANG;
        case '?':
            return XML.QUEST;

// Quoted string

        case '"':
        case '\'':
            q = c;
            sb = new StringBuffer();
            while (true) {
                c = next();
                if (c == 0) {
                    throw syntaxError("Unterminated string.");
                }
                if (c == q) {
                    return sb.toString();
                }
                if (c == '&') {
                    sb.append(nextEntity(c));
                } else {
                    sb.append(c);
                }
            }
        default:

// Name

            sb = new StringBuffer();
            while (true) {
                sb.append(c);
                c = next();
                if (Character.isWhitespace(c)) {
                    return sb.toString();
                }
                switch (c) {
                case 0:
                case '>':
                case '/':
                case '=':
                case '!':
                case '?':
                    back();
                    return sb.toString();
                case '<':
                case '"':
                case '\'':
                    throw syntaxError("Bad character in a name.");
                }
            }
        }
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区在线观看不卡 | 精品视频全国免费看| 色综合久久中文综合久久97 | 亚洲欧美综合网| 久久精品亚洲乱码伦伦中文 | 日韩码欧中文字| 国产精品免费免费| 国产精品系列在线| ...av二区三区久久精品| 中文字幕亚洲欧美在线不卡| 国产精品久久久久永久免费观看 | 日韩一区二区免费在线观看| 欧美日韩成人一区二区| 欧美日韩国产精选| 欧美一区二区黄色| 欧美va在线播放| 2017欧美狠狠色| 国产丝袜在线精品| 99精品视频在线播放观看| 亚洲啪啪综合av一区二区三区| 青草国产精品久久久久久| 日韩精品中文字幕在线不卡尤物 | 欧美伊人久久大香线蕉综合69| 91视视频在线观看入口直接观看www| 99re66热这里只有精品3直播| 色综合中文字幕| 欧美性生活久久| 欧美日韩高清不卡| 精品国产一区二区三区久久久蜜月| 日韩一区二区免费电影| 国产偷国产偷亚洲高清人白洁| 国产精品久久久99| 亚洲一区二区三区在线播放| 午夜欧美在线一二页| 久久精品国产一区二区三区免费看| 国产一区在线观看视频| 91蜜桃视频在线| 欧美色精品天天在线观看视频| 欧美另类久久久品| 精品粉嫩超白一线天av| 专区另类欧美日韩| 在线不卡中文字幕| 欧洲视频一区二区| 国模大尺度一区二区三区| 麻豆成人久久精品二区三区红 | 成人在线视频一区| 日本精品一区二区三区高清| 欧美一级久久久久久久大片| 国产午夜精品福利| 樱桃国产成人精品视频| 日韩1区2区日韩1区2区| 成人免费视频国产在线观看| 欧美午夜片在线看| 久久精品日韩一区二区三区| 亚洲自拍与偷拍| 国产精品系列在线播放| 欧美在线一区二区| 久久久久国产一区二区三区四区 | 成人毛片在线观看| 欧美区在线观看| 国产精品网站在线| 伦理电影国产精品| 91国产成人在线| 国产午夜精品美女毛片视频| 日产精品久久久久久久性色| 一二三四社区欧美黄| 一区二区三区在线观看国产| 日韩国产高清影视| 99视频热这里只有精品免费| 欧美大片日本大片免费观看| 亚洲精选一二三| 国产福利精品一区二区| 制服.丝袜.亚洲.中文.综合 | 麻豆成人久久精品二区三区红| 色综合久久88色综合天天6| 精品日韩99亚洲| 亚洲国产日韩a在线播放| 丰满少妇久久久久久久| 亚洲精品一区二区三区在线观看| 亚洲国产sm捆绑调教视频| 成a人片国产精品| 精品国产一二三区| 日韩黄色一级片| 欧美性做爰猛烈叫床潮| 亚洲欧洲精品一区二区三区 | av动漫一区二区| 欧美成人欧美edvon| 亚洲成a人v欧美综合天堂| 91免费看片在线观看| 中文字幕不卡三区| 激情欧美一区二区| 精品久久久久久综合日本欧美| 婷婷开心激情综合| 欧美日韩综合色| 一二三区精品视频| 日本伦理一区二区| 亚洲精品日韩专区silk| 91一区二区三区在线观看| 中文字幕中文在线不卡住| 大桥未久av一区二区三区中文| 久久久午夜精品| 久久99日本精品| 欧美成人aa大片| 麻豆成人av在线| 精品日韩一区二区| 国内精品在线播放| 久久综合资源网| 国产一区二区调教| 久久久久久久久久久久久女国产乱| 精品一区二区三区在线播放| 日韩美女在线视频| 麻豆91免费观看| 精品国产1区二区| 国产精品亚洲午夜一区二区三区| 国产亚洲欧美日韩俺去了| 国产成人一级电影| 中文字幕日韩欧美一区二区三区| 波多野结衣中文字幕一区二区三区 | 2023国产精品自拍| 国产精品456| 中文字幕一区二区三区蜜月| 色综合天天狠狠| 亚洲成a人片在线不卡一二三区| 欧美一区二区三区免费| 狠狠狠色丁香婷婷综合久久五月| 久久精品亚洲精品国产欧美 | 亚洲国产精品黑人久久久| 99久久777色| 亚洲一区免费在线观看| 3d动漫精品啪啪一区二区竹菊| 久久99精品久久只有精品| 日本一区二区免费在线观看视频| gogo大胆日本视频一区| 亚洲一区二区在线免费看| 欧美一区二区女人| 国产不卡视频在线播放| 亚洲精品videosex极品| 欧美精品久久一区二区三区| 久久国产乱子精品免费女| 欧美激情中文字幕| 欧美四级电影在线观看| 精品亚洲aⅴ乱码一区二区三区| 国产日韩欧美一区二区三区综合| 一本色道久久综合狠狠躁的推荐| 日本欧美在线观看| 中文字幕一区二区三区四区 | 精品国产一区二区亚洲人成毛片 | 国产欧美视频一区二区| 色婷婷综合久久| 免费在线视频一区| 国产精品大尺度| 91麻豆精品国产91久久久久| 国产成人精品免费在线| 亚洲第一激情av| 久久久久国产精品人| 欧美色综合网站| 国产精品自在在线| 亚洲国产精品久久人人爱| 久久久久88色偷偷免费| 久久在线观看免费| 欧美激情艳妇裸体舞| 亚洲欧洲日韩在线| 奇米色一区二区| 国产成人免费xxxxxxxx| 中文字幕亚洲区| 欧美伦理视频网站| 91麻豆产精品久久久久久| 久久爱www久久做| 亚洲综合男人的天堂| 国产亚洲一本大道中文在线| 欧美日韩激情一区二区三区| 成人v精品蜜桃久久一区| 久久99久久99小草精品免视看| 亚洲男人的天堂在线观看| 国产日韩成人精品| 91精品国产综合久久婷婷香蕉 | 一区二区三区波多野结衣在线观看| 精品国产亚洲在线| 欧美高清激情brazzers| 成人av在线一区二区三区| 紧缚捆绑精品一区二区| 亚洲成人手机在线| 亚洲精品中文字幕在线观看| 国产亚洲一区二区在线观看| 欧美一区三区四区| 欧美日韩一区不卡| 91日韩精品一区| 国产成人av电影| 精品一区二区免费看| 日韩电影在线一区二区| 亚洲午夜精品一区二区三区他趣| 丰满白嫩尤物一区二区| 麻豆freexxxx性91精品| 免费看欧美女人艹b| 亚洲午夜精品网| 一区二区三区四区不卡在线| 亚洲三级视频在线观看| 国产拍欧美日韩视频二区| 久久综合色婷婷| 日韩欧美视频在线|