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

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

?? wbxmlparser.java

?? 關于J2me自動登錄的源代碼實例工具屬于簡體中文版
?? JAVA
字號:
// (c) 2001 Stefan Haustein// Contributors: Bjorn Aadlandpackage org.kxml.wap;import java.io.*;import java.util.*;import org.kxml.*;import org.kxml.io.*;import org.kxml.parser.*;/** Still Todo:    <ul>   <li>implement Processing Instructions</li>   <li>implement support for more than one codepages</li>   </ul> */ public class WbxmlParser extends AbstractXmlParser {    InputStream in;    String [] attrStartTable;    String [] attrValueTable;    String [] tagTable;    String stringTable;    int version;    int publicIdentifierId;    int charSet;    StartTag current;    ParseEvent next;    boolean whitespace;        public WbxmlParser (InputStream in) throws IOException {	this.in = in;		version = readByte (); 	publicIdentifierId = readInt ();  		if (publicIdentifierId == 0) readInt (); 		charSet = readInt (); // skip charset		int strTabSize = readInt ();	StringBuffer buf = new StringBuffer (strTabSize);	    	for (int i = 0; i < strTabSize; i++) 	    buf.append ((char) readByte ());	stringTable = buf.toString ();    }    public ParseEvent peek () throws IOException {	String s;	if (next != null) return next;	if (current != null && current.getDegenerated ()) {	    next = new Tag 		(Xml.END_TAG, current, 		 current.getNamespace (), 		 current.getName ());	    current = current.getParent ();	    return next;	}	ParseEvent result = null;		do {	    int id = in.read ();	    	    switch (id) {	    case -1: 		if (current != null) 		    throw new RuntimeException ("unclosed elements: "+current);				next = new ParseEvent (Xml.END_DOCUMENT, null);		break;			    case Wbxml.SWITCH_PAGE: 		if (readByte () != 0) 		    throw new IOException ("Curr. only CP0 supported");		break;			    case Wbxml.END:		next = new Tag (Xml.END_TAG, current, 				current.getNamespace (),				current.getName ());		current = current.getParent ();		break;			    case Wbxml.ENTITY:		next = new ParseEvent (Xml.TEXT, "" + (char) readInt ());		break;			    case Wbxml.STR_I: {		s = readStrI ();		next = new ParseEvent (whitespace ? Xml.WHITESPACE : Xml.TEXT, s);		break;	    }			    case Wbxml.EXT_I_0: 	    case Wbxml.EXT_I_1: 	    case Wbxml.EXT_I_2:	    case Wbxml.EXT_T_0: 	    case Wbxml.EXT_T_1: 	    case Wbxml.EXT_T_2:	    case Wbxml.EXT_0:   	    case Wbxml.EXT_1:   	    case Wbxml.EXT_2:	    case Wbxml.OPAQUE:		next = parseWapExtension (id);		break;		    	    case Wbxml.PI:		throw new RuntimeException ("PI curr. not supp.");		// readPI;		// break;			    case Wbxml.STR_T: {		int pos = readInt ();		int end = stringTable.indexOf ('\0', pos);		next = new ParseEvent 		    (Xml.TEXT, stringTable.substring (pos, end));		break;	    }	      	    default: 		next = parseElement (id);	    }	}	while (next == null);	return next;    }    public ParseEvent read () throws IOException {	if (next == null) peek ();	ParseEvent result = next;	next = null;	return result;    }    /** For handling wap extensions in attributes, overwrite this	method, call super and return a corresponding TextEvent. */    public ParseEvent parseWapExtension (int id) throws IOException {		switch (id) {	case Wbxml.EXT_I_0: 	case Wbxml.EXT_I_1: 	case Wbxml.EXT_I_2:     	    return new WapExtensionEvent (id, readStrI ());	    	case Wbxml.EXT_T_0: 	case Wbxml.EXT_T_1: 	case Wbxml.EXT_T_2:	    return new WapExtensionEvent (id, new Integer (readInt ()));	    	case Wbxml.EXT_0:   	case Wbxml.EXT_1: 	case Wbxml.EXT_2:	    return new WapExtensionEvent (id, null);	    	case Wbxml.OPAQUE: { 	    int len = readInt ();	    byte [] buf = new byte[len];	    for (int i = 0; i < len; i++)   // enhance with blockread!		buf [i] = (byte) readByte ();	    	    return new WapExtensionEvent (id, buf);	} // case OPAQUE	} // SWITCH	throw new IOException ("illegal id!");    }        public Vector readAttr () throws IOException {		Vector result = new Vector ();	int id = readByte ();	while (id != 1) {	    	    String name = resolveId (attrStartTable, id); 	    StringBuffer value;	    int cut = name.indexOf ('=');	    if (cut == -1) 		value = new StringBuffer (); 	    else {		value = new StringBuffer (name.substring (cut+1));		name = name.substring (0, cut);	    }	    	    id = readByte ();	    while (id > 128 || id == Wbxml.ENTITY 		   || id == Wbxml.STR_I || id == Wbxml.STR_T  		   || (id >= Wbxml.EXT_I_0 && id <= Wbxml.EXT_I_2)		   || (id >= Wbxml.EXT_T_0 && id <= Wbxml.EXT_T_2)) {				switch (id) {		case Wbxml.ENTITY: 		    value.append ((char) readInt ());		    break;		case Wbxml.STR_I: 		    value.append (readStrI ());		    break;				case Wbxml.EXT_I_0: case Wbxml.EXT_I_1: case Wbxml.EXT_I_2:     		case Wbxml.EXT_T_0: case Wbxml.EXT_T_1: case Wbxml.EXT_T_2:		case Wbxml.EXT_0:   case Wbxml.EXT_1: case Wbxml.EXT_2:		case Wbxml.OPAQUE:		    ParseEvent e = parseWapExtension (id);		    if (!(e.getType () != Xml.TEXT 			  && e.getType () != Xml.WHITESPACE))			throw new RuntimeException ("parse WapExtension must return Text Event in order to work inside Attributes!");		    		    value.append (e.getText ());		    //value.append (handleExtension (id)); // skip EXT in ATTR		    //break; 		case Wbxml.STR_T: 		    value.append (readStrT ());		    break;		   		default:		    value.append (resolveId (attrValueTable, id));		}		id = readByte ();	    }	    result.addElement (new Attribute (null, name, value.toString ()));	}	return result;    }    String resolveId (String [] tab, int id) throws IOException {	int idx = (id & 0x07f) - 5;	if (idx == -1) return readStrT ();	if (idx < 0 || tab == null 	    || idx >= tab.length || tab [idx] == null) 	    throw new IOException ("id "+id+" undef."); 	return tab [idx];    }    StartTag parseElement (int id) throws IOException {	String tag = resolveId (tagTable, id & 0x03f);	// ok, now let's care about attrs etc	try {	    current = new StartTag 		(current,             // previous		 null,                // namespace		 tag,                 // name		 (((id & 128) != 0)   // attributes		  ? readAttr () 		  : null), 		 (id & 64) == 0,           // degenerated		 processNamespaces);  // processing	}	catch (Exception e) {	    throw new ParseException (null, e, -1, -1);	}	return current;    }    int readByte () throws IOException {	int i = in.read ();	if (i == -1) throw new IOException ("Unexpected EOF");	return i;    }    int readInt () throws IOException {	int result = 0;	int i;		do {	    i = readByte ();	    result = (result << 7) | (i & 0x7f);	}	while ((i & 0x80) != 0);	return result;    }        String readStrI () throws IOException {	StringBuffer buf = new StringBuffer ();	boolean wsp = true;	while (true) {	    int i = in.read ();	    if (i == -1) throw new IOException ("Unexpected EOF");	    if (i == 0) break;	    if (i > 32) wsp = false;	    buf.append ((char) i);	}	this.whitespace = wsp;	return buf.toString ();    }        String readStrT () throws IOException {	int pos = readInt ();	int end = stringTable.indexOf ('\0', pos);	return stringTable.substring (pos, end);    }    /** Sets the tag table for a given page.     *	The first string in the array defines tag 5, the second tag 6 etc.     *  Currently, only page 0 is supported     */    public void setTagTable (int page, String [] tagTable)  {	this.tagTable = tagTable; 	if (page != 0) throw new RuntimeException ("code pages curr. not supp.");     }    /** Sets the attribute start Table for a given page.     *	The first string in the array defines attribute      *  5, the second attribute 6 etc.     *  Currently, only page 0 is supported. Please use the      *  character '=' (without quote!) as delimiter      *  between the attribute name and the (start of the) value      */        public void setAttrStartTable (int page, String [] attrStartTable) {	this.attrStartTable = attrStartTable;	if (page != 0) throw new RuntimeException ("code pages curr. not supp.");     }    /** Sets the attribute value Table for a given page.     *	The first string in the array defines attribute value 0x85,      *  the second attribute value 0x86 etc.     *  Currently, only page 0 is supported.     */        public void setAttrValueTable (int page, String [] attrStartTable) {	this.attrValueTable = attrStartTable;	if (page != 0) throw new RuntimeException ("code pages curr. not supp.");     }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区免费在线| 五月天视频一区| 国产一二三精品| 欧美精品自拍偷拍动漫精品| 国产欧美日韩综合| 国产福利一区二区三区在线视频| 欧美视频三区在线播放| 欧美日韩国产另类不卡| 99视频超级精品| 国产精品你懂的在线| 成人av综合在线| 欧美性猛片xxxx免费看久爱| 成人高清免费观看| 97久久精品人人澡人人爽| 欧美日韩精品一二三区| 国产三级三级三级精品8ⅰ区| 国产精品盗摄一区二区三区| 91精品国产全国免费观看| 中文字幕一区av| 国产日产欧美一区二区视频| 一本一本大道香蕉久在线精品| 久久久久久久久久久久电影| 色老头久久综合| 久久超碰97中文字幕| 五月综合激情日本mⅴ| 盗摄精品av一区二区三区| 久久精品国产一区二区三| 老司机一区二区| 久久久精品人体av艺术| 波多野结衣视频一区| 2021中文字幕一区亚洲| 91免费版pro下载短视频| 国产精品视频一二三区| 国产精品99久久久久久有的能看| 韩国女主播一区| 亚洲三级在线播放| 色偷偷成人一区二区三区91| 成人av动漫在线| 国产精品12区| 91精品国产综合久久久久久久| 欧美xxxxxxxxx| 欧美日韩一区二区电影| 欧美日韩视频在线观看一区二区三区| 久国产精品韩国三级视频| 国产精品色一区二区三区| 久久久夜色精品亚洲| 一片黄亚洲嫩模| 69精品人人人人| 欧美另类高清zo欧美| 一区二区三区四区不卡在线| 久久久91精品国产一区二区精品| 欧美丝袜丝交足nylons图片| 欧美在线观看视频在线| 亚洲欧美色图小说| 国产大陆a不卡| 日日摸夜夜添夜夜添精品视频| 午夜精品成人在线视频| 国产高清不卡一区| 91丨porny丨中文| 日韩中文字幕一区二区三区| 精品视频1区2区3区| 99免费精品视频| 国产精品国产三级国产普通话蜜臀 | 性感美女久久精品| 欧美不卡在线视频| 日韩情涩欧美日韩视频| 亚洲成人动漫精品| 极品美女销魂一区二区三区| 中文av一区特黄| 欧美怡红院视频| 欧美在线色视频| 一区二区三区毛片| 久久久亚洲国产美女国产盗摄| 91看片淫黄大片一级在线观看| 国产三级一区二区| 亚洲图片你懂的| av色综合久久天堂av综合| 91美女片黄在线观看91美女| 日韩视频免费直播| 蜜芽一区二区三区| 在线视频欧美区| 亚洲私人影院在线观看| 国产精品亚洲视频| 国产婷婷精品av在线| 国产经典欧美精品| 国产精品久久久久婷婷| 成人av网址在线观看| 中文字幕av免费专区久久| 福利电影一区二区三区| www.爱久久.com| 国产高清在线精品| 日韩欧美一区二区三区在线| 精品中文av资源站在线观看| 中文字幕在线观看不卡视频| 日韩av一区二区在线影视| 国产麻豆一精品一av一免费| 91.com在线观看| 色综合天天综合色综合av | 亚洲成人免费视频| 国产精品美女一区二区三区| 成人教育av在线| 欧美日韩精品三区| 亚洲一区二区综合| 岛国精品在线播放| 成人国产精品免费观看动漫 | 亚洲乱码国产乱码精品精小说| 国产不卡视频一区二区三区| 国产乱国产乱300精品| 国产精品99久久久| 激情五月婷婷综合网| 欧美成人精品高清在线播放| 精品久久久久久久久久久久久久久 | 91美女在线看| 成人深夜福利app| 色婷婷综合中文久久一本| 亚洲精品伦理在线| 欧美色偷偷大香| 亚洲国产精品尤物yw在线观看| www.亚洲精品| 91精品视频网| 国产精品久久久久久一区二区三区| 日本一区二区三区国色天香| 亚洲国产精品久久不卡毛片| 国产精品自拍毛片| 亚洲午夜激情网站| 国产欧美日韩久久| 欧美在线观看18| 福利电影一区二区| av动漫一区二区| 欧美一级黄色大片| 奇米色一区二区| 国产精品短视频| 国产精品国产自产拍高清av| 精品三级av在线| 欧美国产日产图区| 国产成人免费高清| 中文字幕欧美区| 性做久久久久久免费观看欧美| 自拍偷拍欧美激情| 精品亚洲国内自在自线福利| 亚洲综合男人的天堂| 国产91丝袜在线播放九色| 五月综合激情日本mⅴ| 亚洲v日本v欧美v久久精品| 免费在线看成人av| 国产成人三级在线观看| 精品一区二区在线观看| 国产亚洲欧美在线| 色哟哟亚洲精品| 亚洲国产精品99久久久久久久久| 中文字幕国产精品一区二区| 国产日韩欧美综合一区| 中文字幕中文字幕在线一区| 欧美三级在线视频| 精品一区二区免费视频| 一区二区高清免费观看影视大全| 欧美色视频一区| 91天堂素人约啪| 蜜臀av在线播放一区二区三区| 日韩丝袜情趣美女图片| 欧洲亚洲精品在线| 一区二区三区91| 国产成人精品免费在线| 国产清纯白嫩初高生在线观看91| 国内精品视频一区二区三区八戒| 91在线观看一区二区| 欧美绝品在线观看成人午夜影视| 日韩电影免费在线观看网站| 亚洲色图视频免费播放| 国产成a人亚洲| 亚洲第一主播视频| 国产亚洲自拍一区| 天天色综合成人网| 日韩精品五月天| 久久国产精品99精品国产| 日韩电影在线免费看| 亚洲.国产.中文慕字在线| 欧美久久久久久蜜桃| 久久国产精品99精品国产| 蜜臀久久99精品久久久久宅男| 777午夜精品免费视频| 国产激情一区二区三区桃花岛亚洲| 日韩欧美高清dvd碟片| 国产69精品久久99不卡| 91原创在线视频| 国产精品激情偷乱一区二区∴| 中文字幕中文字幕一区| 最新日韩在线视频| 亚洲激情六月丁香| 亚洲一区二区三区爽爽爽爽爽| 精品av综合导航| 国产盗摄精品一区二区三区在线| 国产精品污www在线观看| 激情小说欧美图片| 8x8x8国产精品| 亚洲高清不卡在线观看| 国产剧情一区在线| 国产成人精品影视| 亚洲精品久久久蜜桃| 国产精品亚洲人在线观看|