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

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

?? xmlparser.java

?? java寫的多功能文件編輯器
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
      case '&':			// Found "&"	c = readCh();	if (c == '#') {	  parseCharRef();	} else {	  unread(c);	  parseEntityRef(true);	}	break;      case '<':			// Found "<"	c = readCh();	switch (c) {	case '!':		// Found "<!"	  c = readCh();	  switch (c) {	  case '-':		// Found "<!-"	    require('-');	    parseComment();	    break;	  case '[':		// Found "<!["	    require("CDATA[");	    parseCDSect();	    break;	  default:	    error("expected comment or CDATA section", c, null);	    break;	  }	  break;	case '?':		// Found "<?"	  dataBufferFlush();	  parsePI();	  break;	case '/':		// Found "</"	  dataBufferFlush();	  parseETag();	  return;	default:		// Found "<" followed by something else	  dataBufferFlush();	  unread(c);	  parseElement();	  break;	}      }    }  }  /**    * Parse an element type declaration.    * [40] elementdecl ::= '<!ELEMENT' S %Name S (%S S)? %contentspec S? '>'    *                      [VC: Unique Element Declaration]    * *NOTE: the '<!ELEMENT' has already been read.    */  void parseElementdecl ()    throws java.lang.Exception  {    String name;    requireWhitespace();				// Read the element type name.    name = readNmtoken(true);    requireWhitespace();				// Read the content model.    parseContentspec(name);    skipWhitespace();    require('>');  }  /**    * Content specification.    * [41] contentspec ::= 'EMPTY' | 'ANY' | Mixed | elements    */  void parseContentspec (String name)    throws java.lang.Exception  {    if (tryRead("EMPTY")) {      setElement(name, CONTENT_EMPTY, null, null);      return;    } else if (tryRead("ANY")) {      setElement(name, CONTENT_ANY, null, null);      return;    } else {      require('(');      dataBufferAppend('(');      skipWhitespace();      if (tryRead("#PCDATA")) {	dataBufferAppend("#PCDATA");	parseMixed();	setElement(name, CONTENT_MIXED, dataBufferToString(), null);      } else {	parseElements();	setElement(name, CONTENT_ELEMENTS, dataBufferToString(), null);      }    }  }  /**    * Parse an element-content model.    * [42] elements ::= (choice | seq) ('?' | '*' | '+')?    * [44] cps ::= S? %cp S?    * [45] choice ::= '(' S? %ctokplus (S? '|' S? %ctoks)* S? ')'    * [46] ctokplus ::= cps ('|' cps)+    * [47] ctoks ::= cps ('|' cps)*    * [48] seq ::= '(' S? %stoks (S? ',' S? %stoks)* S? ')'    * [49] stoks ::= cps (',' cps)*    * *NOTE: the opening '(' and S have already been read.    * *TODO: go over parameter entity boundaries more carefully.    */  void parseElements ()    throws java.lang.Exception  {    char c;    char sep;				// Parse the first content particle    skipWhitespace();    parseCp();				// Check for end or for a separator.    skipWhitespace();    c = readCh();    switch (c) {    case ')':      dataBufferAppend(')');      c = readCh();      switch (c) {      case '*':      case '+':      case '?':	dataBufferAppend(c);	break;      default:	unread(c);      }      return;    case ',':			// Register the separator.    case '|':      sep = c;      dataBufferAppend(c);      break;    default:      error("bad separator in content model", c, null);      return;    }				// Parse the rest of the content model.    while (true) {      skipWhitespace();      parseCp();      skipWhitespace();      c = readCh();      if (c == ')') {	dataBufferAppend(')');	break;      } else if (c != sep) {	error("bad separator in content model", c, null);	return;      } else {	dataBufferAppend(c);      }    }				// Check for the occurrence indicator.    c = readCh();    switch (c) {    case '?':    case '*':    case '+':      dataBufferAppend(c);      return;    default:      unread(c);      return;    }  }  /**    * Parse a content particle.    * [43] cp ::= (Name | choice | seq) ('?' | '*' | '+')    * *NOTE: I actually use a slightly different production here:    *        cp ::= (elements | (Name ('?' | '*' | '+')?))    */  void parseCp ()    throws java.lang.Exception  {    char c;    if (tryRead('(')) {      dataBufferAppend('(');      parseElements();    } else {      dataBufferAppend(readNmtoken(true));      c = readCh();      switch (c) {      case '?':      case '*':      case '+':	dataBufferAppend(c);	break;      default:	unread(c);	break;      }    }  }  /**    * Parse mixed content.    * [50] Mixed ::= '(' S? %( %'#PCDATA' (S? '|' S? %Mtoks)* ) S? ')*'    *              | '(' S? %('#PCDATA') S? ')'    * [51] Mtoks ::= %Name (S? '|' S? %Name)*    * *NOTE: the S and '#PCDATA' have already been read.    */  void parseMixed ()    throws java.lang.Exception  {    char c;				// Check for PCDATA alone.    skipWhitespace();    if (tryRead(')')) {      dataBufferAppend(")*");      tryRead('*');      return;    }				// Parse mixed content.    skipWhitespace();    while (!tryRead(")*")) {      require('|');      dataBufferAppend('|');      skipWhitespace();      dataBufferAppend(readNmtoken(true));      skipWhitespace();    }    dataBufferAppend(")*");  }  /**    * Parse an attribute list declaration.    * [52] AttlistDecl ::= '<!ATTLIST' S %Name S? %AttDef+ S? '>'    * *NOTE: the '<!ATTLIST' has already been read.    */  void parseAttlistDecl ()    throws java.lang.Exception  {    String elementName;    requireWhitespace();    elementName = readNmtoken(true);    requireWhitespace();    while (!tryRead('>')) {      parseAttDef(elementName);      skipWhitespace();    }  }  /**    * Parse a single attribute definition.    * [53] AttDef ::= S %Name S %AttType S %Default    */  void parseAttDef (String elementName)    throws java.lang.Exception  {    String name;    int type;    String enum = null;				// Read the attribute name.    name = readNmtoken(true);				// Read the attribute type.    requireWhitespace();    type = readAttType();				// Get the string of enumerated values				// if necessary.    if (type == ATTRIBUTE_ENUMERATED || type == ATTRIBUTE_NOTATION) {      enum = dataBufferToString();    }				// Read the default value.    requireWhitespace();    parseDefault(elementName, name, type, enum);  }  /**    * Parse the attribute type.    * [54] AttType ::= StringType | TokenizedType | EnumeratedType    * [55] StringType ::= 'CDATA'    * [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' |    *                        'NMTOKEN' | 'NMTOKENS'    * [57] EnumeratedType ::= NotationType | Enumeration    * *TODO: validate the type!!    */  int readAttType ()    throws java.lang.Exception  {    String typeString;    Integer type;    if (tryRead('(')) {      parseEnumeration();      return ATTRIBUTE_ENUMERATED;    } else {      typeString = readNmtoken(true);      if (typeString.equals("NOTATION")) {	parseNotationType();      }      type = (Integer)attributeTypeHash.get(typeString);      if (type == null) {	error("illegal attribute type", typeString, null);	return ATTRIBUTE_UNDECLARED;      } else {	return type.intValue();      }    }  }  /**    * Parse an enumeration.    * [60] Enumeration ::= '(' S? %Etoks (S? '|' S? %Etoks)* S? ')'    * [61] Etoks ::= %Nmtoken (S? '|' S? %Nmtoken)*    * *NOTE: the '(' has already been read.    */  void parseEnumeration ()    throws java.lang.Exception  {    char c;    dataBufferAppend('(');				// Read the first token.    skipWhitespace();    dataBufferAppend(readNmtoken(true));				// Read the remaining tokens.    skipWhitespace();    while (!tryRead(')')) {      require('|');      dataBufferAppend('|');      skipWhitespace();      dataBufferAppend(readNmtoken(true));      skipWhitespace();    }    dataBufferAppend(')');  }  /**    * Parse a notation type for an attribute.    * [58] NotationType ::= %'NOTATION' S '(' S? %Ntoks (S? '|' S? %Ntoks)*    *                       S? ')'    * [59] Ntoks ::= %Name (S? '|' S? %Name)    * *NOTE: the 'NOTATION' has already been read    */  void parseNotationType ()    throws java.lang.Exception  {    requireWhitespace();    require('(');    parseEnumeration();  }  /**    * Parse the default value for an attribute.    * [62] Default ::= '#REQUIRED' | '#IMPLIED' | ((%'#FIXED' S)? %AttValue    */  void parseDefault (String elementName, String name, int type, String enum)    throws java.lang.Exception  {    int valueType = ATTRIBUTE_DEFAULT_SPECIFIED;    String value = null;    boolean normalizeWSFlag;    if (tryRead('#')) {      if (tryRead("FIXED")) {	valueType = ATTRIBUTE_DEFAULT_FIXED;	requireWhitespace();	context = CONTEXT_ATTRIBUTEVALUE;	value = readLiteral(LIT_CHAR_REF);	context = CONTEXT_DTD;      } else if (tryRead("REQUIRED")) {	valueType = ATTRIBUTE_DEFAULT_REQUIRED;      } else if (tryRead("IMPLIED")) {	valueType = ATTRIBUTE_DEFAULT_IMPLIED;      } else {	error("illegal keyword for attribute default value", null, null);      }    } else {      context = CONTEXT_ATTRIBUTEVALUE;      value = readLiteral(LIT_CHAR_REF);      context = CONTEXT_DTD;    }    setAttribute(elementName, name, type, enum, value, valueType);  }  /**    * Parse a conditional section.    * [63] conditionalSect ::= includeSect || ignoreSect    * [64] includeSect ::= '<![' %'INCLUDE' '[' (%markupdecl*)* ']]>'    * [65] ignoreSect ::= '<![' %'IGNORE' '[' ignoreSectContents* ']]>'    * [66] ignoreSectContents ::= ((SkipLit | Comment | PI) -(Char* ']]>'))    *                           | ('<![' ignoreSectContents* ']]>')    *                           | (Char - (']' | [<'"]))    *                           | ('<!' (Char - ('-' | '[')))    * *NOTE: the '<![' has already been read.    * *TODO: verify that I am handling ignoreSectContents right.    */  void parseConditionalSect ()    throws java.lang.Exception  {    skipWhitespace();    if (tryRead("INCLUDE")) {      skipWhitespace();      require('[');      skipWhitespace();      while (!tryRead("]]>")) {	parseMarkupdecl();	skipWhitespace();      }    } else if (tryRead("IGNORE")) {      skipWhitespace();      require('[');      int nesting = 1;      char c;      for (int nest = 1; nest > 0; ) {	c = readCh();	switch (c) {	case '<':	  if (tryRead("![")) {	    nest++;	  }	case ']':	  if (tryRead("]>")) {	    nest--;	  }	}      }    } else {      error("conditional section must begin with INCLUDE or IGNORE",	    null, null);    }  }  /**    * Read a character reference.    * [67] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'    * *NOTE: the '&#' has already been read.    */  void parseCharRef ()    throws java.lang.Exception  {    int value = 0;    char c;    if (tryRead('x')) {      loop1: while (true) {	c = readCh();	switch (c) {	case '0':	case '1':	case '2':	case '3':	case '4':	case '5':	case '6':	case '7':	case '8':	case '9':	case 'a':	case 'A':	case 'b':	case 'B':	case 'c':	case 'C':	case 'd':	case 'D':	case 'e':	case 'E':	case 'f':	case 'F':	  value *= 16;	  value += Integer.parseInt(new Character(c).toString(), 16);	  break;	case ';':	  break loop1;	default:	  error("illegal character in character reference", c, null);	  break loop1;	}      }    } else {      loop2: while (true) {	c = readCh();	switch (c) {	case '0':	case '1':	case '2':	case '3':	case '4':	case '5':	case '6':	case '7':	case '8':	case '9':	  value *= 10;	  value += Integer.parseInt(new Character(c).toString(), 10);	  break;	case ';':	  break loop2;	default:	  error("illegal character in character reference", c, null);	  break loop2;	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91黄色小视频| 国产成人精品免费视频网站| 国产成人av一区| 欧美精品久久久久久久多人混战| 久久久777精品电影网影网| 亚洲激情av在线| 国产99久久久国产精品免费看 | 亚洲一区视频在线| 国产不卡免费视频| 日韩一区二区三区高清免费看看| 国产精品国产三级国产| 久久狠狠亚洲综合| 欧美日韩一区二区三区四区| 亚洲国产岛国毛片在线| 久久精品国产亚洲a| 欧美性大战久久| 一区二区中文字幕在线| 国产美女视频91| 日韩一区二区三| 亚洲成人中文在线| 色狠狠桃花综合| 国产欧美久久久精品影院| 麻豆国产欧美日韩综合精品二区 | 免费在线观看日韩欧美| 色综合夜色一区| 精品久久久久香蕉网| 亚洲成人黄色小说| 在线观看国产日韩| 亚洲精品视频在线观看网站| 国产99精品在线观看| 久久免费视频一区| 精品一区二区在线播放| 日韩一区二区在线观看视频| 亚洲成人你懂的| 欧美在线观看视频一区二区三区| 亚洲欧洲美洲综合色网| 国产成人激情av| 久久午夜老司机| 狠狠色狠狠色合久久伊人| 欧美一区二区三区电影| 日本成人在线不卡视频| 在线播放视频一区| 日韩电影在线一区二区| 欧美色视频在线观看| 亚洲二区在线观看| 欧美人体做爰大胆视频| 午夜视频久久久久久| 欧美日本一区二区三区| 日精品一区二区| 日韩一级完整毛片| 麻豆精品久久精品色综合| 精品国产一二三| 国产成人综合亚洲网站| 国产精品欧美一级免费| 91在线视频官网| 亚洲最新视频在线观看| 欧美日韩一级二级| 男女性色大片免费观看一区二区| 欧美一级欧美三级在线观看| 美女精品自拍一二三四| 日韩精品一区二区三区中文精品| 精品一区二区三区av| 欧美精品一区二区三区四区| 国产精品99久久不卡二区| 中文字幕国产精品一区二区| 91亚洲精品久久久蜜桃网站| 一区二区三区在线免费| 欧美精品久久久久久久多人混战| 激情综合色综合久久| 国产人伦精品一区二区| 色综合夜色一区| 日本欧美大码aⅴ在线播放| 精品久久久久久久人人人人传媒| 国产丶欧美丶日本不卡视频| 亚洲欧洲国产日本综合| 欧美这里有精品| 久久国产人妖系列| 国产精品亲子乱子伦xxxx裸| 色综合视频在线观看| 视频一区在线视频| 国产亚洲1区2区3区| 91香蕉国产在线观看软件| 亚洲电影第三页| 久久久久久影视| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲国产另类av| 久久久噜噜噜久久中文字幕色伊伊| 99v久久综合狠狠综合久久| 午夜在线成人av| 中文字幕av一区二区三区免费看| 欧美亚一区二区| 加勒比av一区二区| 亚洲精品日日夜夜| 精品美女在线观看| 91丨porny丨蝌蚪视频| 日韩黄色免费电影| 国产精品麻豆99久久久久久| 欧美日韩国产色站一区二区三区| 国产九九视频一区二区三区| 亚洲人成精品久久久久| 日韩欧美激情在线| 色偷偷久久一区二区三区| 日本 国产 欧美色综合| 国产精品第一页第二页第三页| 在线成人免费观看| 99久久久免费精品国产一区二区 | 国产精品久久看| 欧美日韩电影在线播放| 高清视频一区二区| 日本最新不卡在线| 亚洲免费毛片网站| 久久久久久97三级| 欧美高清视频在线高清观看mv色露露十八 | 精品区一区二区| 91国模大尺度私拍在线视频| 国产一区二区三区四| 亚洲一区免费观看| 国产精品无人区| 欧美成人三级电影在线| 色噜噜狠狠成人网p站| 高潮精品一区videoshd| 免费观看在线综合色| 一区二区三区欧美| 中文字幕 久热精品 视频在线| 这里只有精品99re| 欧洲精品视频在线观看| 成人动漫在线一区| 国产一区二区电影| 美女诱惑一区二区| 亚洲1区2区3区4区| 亚洲精品国产一区二区三区四区在线 | 成人av午夜电影| 狠狠v欧美v日韩v亚洲ⅴ| 五月天一区二区三区| 亚洲精品国产a久久久久久| 国产日韩影视精品| 久久综合给合久久狠狠狠97色69| 欧美高清视频在线高清观看mv色露露十八| 一本大道久久a久久精品综合| 国产福利一区在线观看| 久久99久久99精品免视看婷婷| 丝袜亚洲另类欧美| 亚洲成a天堂v人片| 亚洲国产cao| 一区二区三区在线免费| 亚洲欧美偷拍另类a∨色屁股| 国产精品色呦呦| 国产欧美精品日韩区二区麻豆天美| 欧美精品一区二区三区高清aⅴ | 99视频有精品| 国产午夜亚洲精品午夜鲁丝片 | 成人h版在线观看| 国产成a人亚洲| 国产69精品久久久久毛片 | 亚洲成人三级小说| 亚洲va在线va天堂| 亚洲第一精品在线| 偷拍自拍另类欧美| 日本不卡123| 麻豆一区二区在线| 精品一二三四区| 精品一区二区精品| 国产在线精品一区二区三区不卡 | 另类中文字幕网| 久久精品国产99国产| 久久av中文字幕片| 国产乱码精品一区二区三区五月婷| 国产在线视频精品一区| 国产成人精品三级| 91在线精品一区二区三区| 91玉足脚交白嫩脚丫在线播放| 色婷婷精品大视频在线蜜桃视频| 91成人在线观看喷潮| 欧美色综合网站| 欧美一级理论性理论a| 日韩欧美久久一区| 国产欧美一二三区| 亚洲欧美日韩综合aⅴ视频| 亚洲蜜臀av乱码久久精品| 亚洲一级二级三级| 蜜臀av一级做a爰片久久| 美国av一区二区| 国产传媒欧美日韩成人| 成人av在线资源| 亚洲一二三四在线观看| 日本一不卡视频| 国产一区二区三区在线观看精品| 成人精品国产福利| 在线免费视频一区二区| 8x8x8国产精品| 国产性天天综合网| 一区二区三区在线视频播放| 日韩高清一区在线| 国产成人av电影| 在线中文字幕一区二区| 日韩精品中文字幕在线一区| 中文字幕精品一区二区精品绿巨人 | 欧美高清一级片在线| 久久久蜜桃精品| 亚洲一区二区黄色|