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

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

?? xmlparser.java

?? java寫的多功能文件編輯器
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
      ids[1] = readLiteral(0);	// system id    }    return ids;  }  /**    * Test if a character is whitespace.    * <pre>    * [1] S ::= (#x20 | #x9 | #xd | #xa)+    * </pre>    * @param c The character to test.    * @return true if the character is whitespace.    */  final boolean isWhitespace (char c)  {    switch ((int)c) {    case 0x20:    case 0x09:    case 0x0d:    case 0x0a:      return true;    default:      return false;    }  }  //////////////////////////////////////////////////////////////////////  // Utility routines.  //////////////////////////////////////////////////////////////////////  /**    * Add a character to the data buffer.    */  void dataBufferAppend (char c)  {				// Expand buffer if necessary.    dataBuffer =      (char[])extendArray(dataBuffer, dataBuffer.length, dataBufferPos);    dataBuffer[dataBufferPos++] = c;  }  /**     * Add a string to the data buffer.    */  void dataBufferAppend (String s)  {    dataBufferAppend(s.toCharArray(), 0, s.length());  }  /**    * Append (part of) a character array to the data buffer.    */  void dataBufferAppend (char ch[], int start, int length)  {    dataBuffer =      (char[])extendArray(dataBuffer, dataBuffer.length,			  dataBufferPos + length);    System.arraycopy((Object)ch, start,		     (Object)dataBuffer, dataBufferPos,		     length);    dataBufferPos += length;  }  /**    * Normalise whitespace in the data buffer.    */  void dataBufferNormalize ()  {    int i = 0;    int j = 0;    int end = dataBufferPos;				// Skip whitespace at the start.    while (j < end && isWhitespace(dataBuffer[j])) {      j++;    }				// Skip whitespace at the end.    while (end > j && isWhitespace(dataBuffer[end - 1])) {      end --;    }				// Start copying to the left.    while (j < end) {      char c = dataBuffer[j++];				// Normalise all other whitespace to				// a single space.      if (isWhitespace(c)) {	while (j < end && isWhitespace(dataBuffer[j++])) {	}	dataBuffer[i++] = ' ';	dataBuffer[i++] = dataBuffer[j-1];      } else {	dataBuffer[i++] = c;      }    }				// The new length is <= the old one.    dataBufferPos = i;  }  /**    * Convert the data buffer to a string.    * @param internFlag true if the contents should be interned.    * @see #intern(char[],int,int)    */  String dataBufferToString ()  {    String s = new String(dataBuffer, 0, dataBufferPos);    dataBufferPos = 0;    return s;  }  /**    * Flush the contents of the data buffer to the handler, if    * appropriate, and reset the buffer for new input.    */  void dataBufferFlush ()    throws java.lang.Exception  {    if (dataBufferPos > 0) {      switch (currentElementContent) {      case CONTENT_UNDECLARED:      case CONTENT_EMPTY:	// do nothing	break;      case CONTENT_MIXED:      case CONTENT_ANY:	if (handler != null) {	  handler.charData(dataBuffer, 0, dataBufferPos);	}	break;      case CONTENT_ELEMENTS:	if (handler != null) {	  handler.ignorableWhitespace(dataBuffer, 0, dataBufferPos);	}	break;      }      dataBufferPos = 0;    }  }  /**    * Require a string to appear, or throw an exception.    */  void require (String delim)    throws java.lang.Exception  {    char ch[] = delim.toCharArray();    for (int i = 0; i < ch.length; i++) {      require(ch[i]);    }  }  /**    * Require a character to appear, or throw an exception.    */  void require (char delim)       throws java.lang.Exception  {    char c = readCh();    if (c != delim) {      error("expected character", c, new Character(delim).toString());    }  }  /**    * Return an internalised version of a string.    * <p>&AElig;lfred uses this method to create an internalised version    * of all names and attribute values, so that it can test equality    * with <code>==</code> instead of <code>String.equals()</code>.    * <p>If you want to be able to test for equality in the same way,    * you can use this method to internalise your own strings first:    * <pre>    * String PARA = handler.intern("PARA");    * </pre>    * <p>Note that this will not return the same results as String.intern().    * @param s The string to internalise.    * @return An internalised version of the string.    * @see #intern(char[],int,int)    * @see java.lang.String#intern    */  public String intern (String s)  {    char ch[] = s.toCharArray();    return intern(ch, 0, ch.length);  }  /**    * Create an internalised string from a character array.    * <p>This is much more efficient than constructing a non-internalised    * string first, and then internalising it.    * <p>Note that this will not return the same results as String.intern().    * @param ch an array of characters for building the string.    * @param start the starting position in the array.    * @param length the number of characters to place in the string.    * @return an internalised string.    * @see #intern(String)    * @see java.lang.String#intern    */  public String intern (char ch[], int start, int length)  {    int index;    int hash = 0;				// Generate a hash code.    for (int i = start; i < start + length; i++) {      hash = ((hash << 1) & 0xffffff) + (int)ch[i];    }    hash = hash % SYMBOL_TABLE_LENGTH;				// Get the bucket.    Object bucket[] = (Object[])symbolTable[hash];    if (bucket == null) {      symbolTable[hash] = bucket = new Object[8];    }				// Search for a matching tuple, and				// return the string if we find one.    for (index = 0; index < bucket.length; index += 2) {      char chFound[] = (char[])bucket[index];				// Stop when we hit a null index.      if (chFound == null) {	break;      }				// If they're the same length,				// check for a match.				// If the loop finishes, 'index' will				// contain the current bucket				// position.      if (chFound.length == length) {	for (int i = 0; i < chFound.length; i++) {				// Stop if there are no more tuples.	  if (ch[start+i] != chFound[i]) {	    break;	  } else if (i == length-1) {				// That's it, we have a match!	    return (String)bucket[index+1];	  }	}      }    }				// Not found -- we'll have to add it.				// Do we have to grow the bucket?    bucket =      (Object[])extendArray(bucket, bucket.length, index);				// OK, add it to the end of the				// bucket.    String s = new String(ch, start, length);    bucket[index] = s.toCharArray();    bucket[index+1] = s;    symbolTable[hash] = bucket;    return s;  }  /**    * Ensure the capacity of an array, allocating a new one if    * necessary.    */  Object extendArray (Object array, int currentSize, int requiredSize)  {    if (requiredSize < currentSize) {      return array;    } else {      Object newArray = null;      int newSize = currentSize * 2;      if (newSize <= requiredSize) {	newSize = requiredSize + 1;      }      if (array instanceof char[]) {	newArray = new char[currentSize * 2];      } else if (array instanceof Object[]) {	newArray = new Object[currentSize * 2];      }      System.arraycopy(array, 0, newArray, 0, currentSize);      return newArray;    }  }  //////////////////////////////////////////////////////////////////////  // XML query routines.  //////////////////////////////////////////////////////////////////////  //  // Elements  //  /**    * Get the declared elements for an XML document.    * <p>The results will be valid only after the DTD (if any) has been    * parsed.    * @return An enumeration of all element types declared for this    *         document (as Strings).    * @see #getElementContentType    * @see #getElementContentModel    */  public Enumeration declaredElements ()  {    return elementInfo.keys();  }  /**    * Look up the content type of an element.    * @param name The element type name.    * @return An integer constant representing the content type.    * @see #getElementContentModel    * @see #CONTENT_UNDECLARED    * @see #CONTENT_ANY    * @see #CONTENT_EMPTY    * @see #CONTENT_MIXED    * @see #CONTENT_ELEMENTS    */  public int getElementContentType (String name)  {    Object element[] = (Object[])elementInfo.get(name);    if (element == null) {      return CONTENT_UNDECLARED;    } else {      return ((Integer)element[0]).intValue();    }  }  /**    * Look up the content model of an element.    * <p>The result will always be null unless the content type is    * CONTENT_ELEMENTS or CONTENT_MIXED.    * @param name The element type name.    * @return The normalised content model, as a string.    * @see #getElementContentType    */  public String getElementContentModel (String name)  {    Object element[] = (Object[])elementInfo.get(name);    if (element == null) {      return null;    } else {      return (String)element[1];    }  }  /**    * Register an element.    * Array format:    *  element type    *  attribute hash table    */  void setElement (String name, int contentType,		   String contentModel, Hashtable attributes)    throws java.lang.Exception  {    Object element[];				// Try looking up the element    element = (Object[])elementInfo.get(name);				// Make a new one if necessary.    if (element == null) {      element = new Object[3];      element[0] = new Integer(CONTENT_UNDECLARED);      element[1] = null;      element[2] = null;    } else if (contentType != CONTENT_UNDECLARED &&	       ((Integer)element[0]).intValue() != CONTENT_UNDECLARED) {      error("multiple declarations for element type", name, null);      return;    }				// Insert the content type, if any.    if (contentType != CONTENT_UNDECLARED) {      element[0] = new Integer(contentType);    }				// Insert the content model, if any.    if (contentModel != null) {      element[1] = contentModel;    }				// Insert the attributes, if any.    if (attributes != null) {      element[2] =attributes;    }				// Save the element info.    elementInfo.put(name,element);  }  /**    * Look up the attribute hash table for an element.    * The hash table is the second item in the element array.    */  Hashtable getElementAttributes (String name)  {    Object element[] = (Object[])elementInfo.get(name);    if (element == null) {      return null;    } else {      return (Hashtable)element[2];    }  }  //  // Attributes  //  /**    * Get the declared attributes for an element type.    * @param elname The name of the element type.    * @return An Enumeration of all the attributes declared for    *         a specific element type.  The results will be valid only    *         after the DTD (if any) has been parsed.    * @see #getAttributeType    * @see #getAttributeEnumeration    * @see #getAttributeDefaultValueType    * @see #getAttributeDefaultValue    * @see #getAttributeExpandedValue    */  public Enumeration declaredAttributes (String elname)  {    Hashtable attlist = getElementAttributes(elname);    if (attlist == null) {      return null;    } else {      return attlist.keys();    }  }  /**    * Retrieve the declared type of an attribute.    * @param name The name of the associated element.    * @param aname The name of the attribute.    * @return An integer constant representing the attribute type.    * @see #ATTRIBUTE_UNDECLARED    * @see #ATTRIBUTE_CDATA    * @see #ATTRIBUTE_ID    * @see #ATTRIBUTE_IDREF    * @see #ATTRIBUTE_IDREFS    * @see #ATTRIBUTE_ENTITY    * @see #ATTRIBUTE_ENTITIES    * @see #ATTRIBUTE_NMTOKEN    * @see #ATTRIBUTE_NMTOKENS    * @see #ATTRIBUTE_ENUMERATED    * @see #ATTRIBUTE_NOTATION    */  public int getAttributeType (String name, String aname)  {    Object attribute[] = getAttribute(name, aname);    if (attribute == null) {      return ATTRIBUTE_UNDECLARED;    } else {      return ((Integer)attribute[0]).intValue();    }  }  /**    * Retrieve the allowed values for an enumerated attribute type.    * @param name The name of the associated element.    * @param aname The name of the attribute.    * @return A string containing the token list.    * @see #ATTRIBUTE_ENUMERATED    * @see #ATTRIBUTE_NOTATION    */  public String getAttributeEnumeration (String name, String aname)  {    Object attribute[] = getAttribute(name, aname);    if (attribute == null) {      return null;    } else {      return (String)attribute[3];    }  }  /**    * Retrieve the default value of a declared attribute.    * @param name The name of the associated element.    * @param aname The name of the attribute.    * @return The default value, or null if the attribute was    *         #IMPLIED or simply undeclared and unspecified.    * @see #getAttributeExpandedValue    */  public String getAttributeDefaultValue (String name, String aname)  {    Object attribute[] = getAttribute(name, aname);    if (attribute == null) {      return null;    } else {      return (String)attribute[1];    }  }  /**    * Retrieve the expan

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品v| 九九热在线视频观看这里只有精品| 日韩中文字幕av电影| 国产盗摄一区二区三区| 欧美精品久久天天躁| 成人免费一区二区三区在线观看 | 国产成人精品亚洲777人妖| 欧美在线免费观看亚洲| 欧美高清一级片在线观看| 男人操女人的视频在线观看欧美| 91九色最新地址| 国产精品久久久久久亚洲毛片| 久久国产人妖系列| 欧美一区二区网站| 亚洲一二三四久久| 色婷婷精品大视频在线蜜桃视频| 国产免费观看久久| 国产精品77777| 国产校园另类小说区| 免费av成人在线| 欧美日韩国产高清一区二区 | 成人h精品动漫一区二区三区| 日韩欧美国产1| 免费日韩伦理电影| 91精品一区二区三区在线观看| 亚洲成人在线观看视频| 欧美在线一区二区三区| 一区二区三区鲁丝不卡| 91麻豆成人久久精品二区三区| ...xxx性欧美| av在线一区二区| 亚洲品质自拍视频网站| 91美女在线视频| 一区二区三区中文免费| 欧美日韩第一区日日骚| 日本成人中文字幕在线视频| 91精品国产入口| 美女视频黄免费的久久| 日韩欧美一级特黄在线播放| 精品综合免费视频观看| 精品国产91九色蝌蚪| 国产精品资源在线| 日本一区二区成人| 欧美在线免费视屏| 欧美bbbbb| 日本一区二区三区免费乱视频 | 中文字幕制服丝袜一区二区三区| av中文一区二区三区| 亚洲精品欧美激情| 欧美精品一二三区| 国产在线精品视频| 国产精品久久久久久久久免费樱桃| 成人高清在线视频| 午夜欧美一区二区三区在线播放| 91精品在线观看入口| 国产精品性做久久久久久| 国产精品大尺度| 欧美日韩成人激情| 国产精品一区三区| 一区二区三区免费网站| 日韩精品在线看片z| aaa欧美大片| 日韩高清一级片| 国产精品毛片久久久久久| 欧美在线免费视屏| 国产成人在线视频网站| 亚洲国产一区二区三区青草影视| 精品欧美黑人一区二区三区| 色综合久久精品| 久久国产精品一区二区| 亚洲精品成人在线| 久久婷婷色综合| 在线观看日韩高清av| 国产久卡久卡久卡久卡视频精品| 亚洲精品久久久蜜桃| 久久精品夜夜夜夜久久| 欧美日韩精品一区二区| 成人精品国产福利| 卡一卡二国产精品| 亚洲h动漫在线| 亚洲人成伊人成综合网小说| 精品国产伦一区二区三区观看方式 | 精品1区2区在线观看| 一本到三区不卡视频| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产日韩一区二区| 国产精品久久久久久久久图文区 | 亚洲蜜臀av乱码久久精品蜜桃| 欧美一级搡bbbb搡bbbb| 91国产精品成人| 国产成人欧美日韩在线电影| 免费人成在线不卡| 亚洲大片精品永久免费| 一区二区三区小说| 国产精品国产三级国产a| 亚洲精品一区二区三区在线观看| 欧美亚洲一区三区| 一本久久综合亚洲鲁鲁五月天| 国产成人午夜高潮毛片| 精一区二区三区| 看电影不卡的网站| 青青草视频一区| 日本欧美一区二区| 日韩av网站免费在线| 亚洲国产精品精华液网站| 亚洲黄色免费网站| 亚洲另类在线一区| 亚洲欧美国产高清| 一区二区三区91| 亚洲一区二区在线免费观看视频| 依依成人精品视频| 亚洲在线中文字幕| 一区二区三区四区视频精品免费| |精品福利一区二区三区| 亚洲视频免费看| 亚洲一区二区在线免费观看视频| 亚洲激情在线激情| 亚洲国产美女搞黄色| 婷婷成人激情在线网| 无码av中文一区二区三区桃花岛| 日韩精品乱码免费| 麻豆精品一二三| 国产精品一区二区三区99| 国产精品一级片| jiyouzz国产精品久久| 91麻豆国产在线观看| 欧美日韩二区三区| 久久新电视剧免费观看| 国产欧美日韩在线观看| 成人欧美一区二区三区黑人麻豆| 伊人色综合久久天天人手人婷| 天天影视涩香欲综合网| 韩国女主播成人在线| aaa欧美大片| 欧美老肥妇做.爰bbww| 日韩欧美在线123| 国产精品视频观看| 亚洲网友自拍偷拍| 国内精品第一页| 色欲综合视频天天天| 日韩丝袜情趣美女图片| 国产精品福利影院| 婷婷中文字幕一区三区| 国产激情一区二区三区桃花岛亚洲| 成人av资源在线| 欧美妇女性影城| 亚洲国产精品传媒在线观看| 亚洲一区精品在线| 国产一区二区三区蝌蚪| 色菇凉天天综合网| 久久婷婷色综合| 亚洲午夜影视影院在线观看| 国产伦精一区二区三区| 欧美综合久久久| 欧美—级在线免费片| 午夜精品久久久久久久久| 成人精品国产一区二区4080| 欧美二区乱c少妇| 国产精品伦一区二区三级视频| 日韩精品一卡二卡三卡四卡无卡| 懂色av一区二区在线播放| 91麻豆精品国产综合久久久久久| 最新国产成人在线观看| 九九热在线视频观看这里只有精品| 99国产精品99久久久久久| 日韩一区二区免费电影| 亚洲激情图片qvod| 国产一区二区三区综合| 欧美色网站导航| 中文字幕一区视频| 国产制服丝袜一区| 91麻豆精品国产综合久久久久久| 亚洲免费观看高清在线观看| 国产九九视频一区二区三区| 69p69国产精品| 亚洲午夜久久久久| 99久久精品国产导航| 国产肉丝袜一区二区| 免费成人在线观看| 欧美日本一区二区| 亚洲一区二区视频| 色综合久久久久网| 亚洲私人影院在线观看| 粉嫩嫩av羞羞动漫久久久| 欧美变态口味重另类| 欧美a级理论片| 日韩欧美一区电影| 蜜臀av亚洲一区中文字幕| 欧美肥妇free| 蜜桃精品视频在线观看| 4hu四虎永久在线影院成人| 视频一区二区三区入口| 欧美日韩精品一区二区在线播放| 一区二区成人在线观看| 日本久久电影网| 亚洲综合激情另类小说区| 91美女片黄在线观看| 亚洲综合在线免费观看| 欧美日韩在线精品一区二区三区激情 | 欧美日韩在线观看一区二区|