⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xpath.java

📁 java1.6众多例子参考
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        public void addToken(int token) {            try {                fTokens[fTokenCount] = token;            } catch (ArrayIndexOutOfBoundsException ex) {                int[] oldList = fTokens;                fTokens = new int[fTokenCount << 1];                System.arraycopy(oldList, 0, fTokens, 0, fTokenCount);                fTokens[fTokenCount] = token;            }            fTokenCount++;        }//        public int getTokenCount() {//            return fTokenCount;//        }//        public int getToken(int tokenIndex) {//            return fTokens[tokenIndex];//        }                /**         * Resets the current position to the head of the token list.         */        public void rewind() {            fCurrentTokenIndex=0;        }        /**         * Returns true if the {@link #getNextToken()} method         * returns a valid token.         */        public boolean hasMore() {            return fCurrentTokenIndex<fTokenCount;         }        /**         * Obtains the token at the current position, then advance         * the current position by one.         *          * If there's no such next token, this method throws         * <tt>new XPathException("c-general-xpath");</tt>.         */        public int nextToken() throws XPathException {            if( fCurrentTokenIndex==fTokenCount )                throw new XPathException("c-general-xpath");            return fTokens[fCurrentTokenIndex++];        }        /**         * Obtains the token at the current position, without advancing         * the current position.         *          * If there's no such next token, this method throws         * <tt>new XPathException("c-general-xpath");</tt>.         */        public int peekToken() throws XPathException {            if( fCurrentTokenIndex==fTokenCount )                throw new XPathException("c-general-xpath");            return fTokens[fCurrentTokenIndex];        }        /**         * Obtains the token at the current position as a String.         *          * If there's no current token or if the current token         * is not a string token, this method throws          * <tt>new XPathException("c-general-xpath");</tt>.         */        public String nextTokenAsString() throws XPathException {            String s = getTokenString(nextToken());            if(s==null)     throw new XPathException("c-general-xpath");            return s;        }                public void dumpTokens() {            //if (DUMP_TOKENS) {                for (int i = 0; i < fTokenCount; i++) {                    switch (fTokens[i]) {                    case EXPRTOKEN_OPEN_PAREN:                        System.out.print("<OPEN_PAREN/>");                        break;                    case EXPRTOKEN_CLOSE_PAREN:                        System.out.print("<CLOSE_PAREN/>");                        break;                    case EXPRTOKEN_OPEN_BRACKET:                        System.out.print("<OPEN_BRACKET/>");                        break;                    case EXPRTOKEN_CLOSE_BRACKET:                        System.out.print("<CLOSE_BRACKET/>");                        break;                    case EXPRTOKEN_PERIOD:                        System.out.print("<PERIOD/>");                        break;                    case EXPRTOKEN_DOUBLE_PERIOD:                        System.out.print("<DOUBLE_PERIOD/>");                        break;                    case EXPRTOKEN_ATSIGN:                        System.out.print("<ATSIGN/>");                        break;                    case EXPRTOKEN_COMMA:                        System.out.print("<COMMA/>");                        break;                    case EXPRTOKEN_DOUBLE_COLON:                        System.out.print("<DOUBLE_COLON/>");                        break;                    case EXPRTOKEN_NAMETEST_ANY:                        System.out.print("<NAMETEST_ANY/>");                        break;                    case EXPRTOKEN_NAMETEST_NAMESPACE:                        System.out.print("<NAMETEST_NAMESPACE");                        System.out.print(" prefix=\"" + getTokenString(fTokens[++i]) + "\"");                        System.out.print("/>");                        break;                    case EXPRTOKEN_NAMETEST_QNAME:                        System.out.print("<NAMETEST_QNAME");                        if (fTokens[++i] != -1)                            System.out.print(" prefix=\"" + getTokenString(fTokens[i]) + "\"");                        System.out.print(" localpart=\"" + getTokenString(fTokens[++i]) + "\"");                        System.out.print("/>");                        break;                    case EXPRTOKEN_NODETYPE_COMMENT:                        System.out.print("<NODETYPE_COMMENT/>");                        break;                    case EXPRTOKEN_NODETYPE_TEXT:                        System.out.print("<NODETYPE_TEXT/>");                        break;                    case EXPRTOKEN_NODETYPE_PI:                        System.out.print("<NODETYPE_PI/>");                        break;                    case EXPRTOKEN_NODETYPE_NODE:                        System.out.print("<NODETYPE_NODE/>");                        break;                    case EXPRTOKEN_OPERATOR_AND:                        System.out.print("<OPERATOR_AND/>");                        break;                    case EXPRTOKEN_OPERATOR_OR:                        System.out.print("<OPERATOR_OR/>");                        break;                    case EXPRTOKEN_OPERATOR_MOD:                        System.out.print("<OPERATOR_MOD/>");                        break;                    case EXPRTOKEN_OPERATOR_DIV:                        System.out.print("<OPERATOR_DIV/>");                        break;                    case EXPRTOKEN_OPERATOR_MULT:                        System.out.print("<OPERATOR_MULT/>");                        break;                    case EXPRTOKEN_OPERATOR_SLASH:                        System.out.print("<OPERATOR_SLASH/>");                        if (i + 1 < fTokenCount) {                            System.out.println();                            System.out.print("  ");                        }                        break;                    case EXPRTOKEN_OPERATOR_DOUBLE_SLASH:                        System.out.print("<OPERATOR_DOUBLE_SLASH/>");                        break;                    case EXPRTOKEN_OPERATOR_UNION:                        System.out.print("<OPERATOR_UNION/>");                        break;                    case EXPRTOKEN_OPERATOR_PLUS:                        System.out.print("<OPERATOR_PLUS/>");                        break;                    case EXPRTOKEN_OPERATOR_MINUS:                        System.out.print("<OPERATOR_MINUS/>");                        break;                    case EXPRTOKEN_OPERATOR_EQUAL:                        System.out.print("<OPERATOR_EQUAL/>");                        break;                    case EXPRTOKEN_OPERATOR_NOT_EQUAL:                        System.out.print("<OPERATOR_NOT_EQUAL/>");                        break;                    case EXPRTOKEN_OPERATOR_LESS:                        System.out.print("<OPERATOR_LESS/>");                        break;                    case EXPRTOKEN_OPERATOR_LESS_EQUAL:                        System.out.print("<OPERATOR_LESS_EQUAL/>");                        break;                    case EXPRTOKEN_OPERATOR_GREATER:                        System.out.print("<OPERATOR_GREATER/>");                        break;                    case EXPRTOKEN_OPERATOR_GREATER_EQUAL:                        System.out.print("<OPERATOR_GREATER_EQUAL/>");                        break;                    case EXPRTOKEN_FUNCTION_NAME:                        System.out.print("<FUNCTION_NAME");                        if (fTokens[++i] != -1)                            System.out.print(" prefix=\"" + getTokenString(fTokens[i]) + "\"");                        System.out.print(" localpart=\"" + getTokenString(fTokens[++i]) + "\"");                        System.out.print("/>");                        break;                    case EXPRTOKEN_AXISNAME_ANCESTOR:                        System.out.print("<AXISNAME_ANCESTOR/>");                        break;                    case EXPRTOKEN_AXISNAME_ANCESTOR_OR_SELF:                        System.out.print("<AXISNAME_ANCESTOR_OR_SELF/>");                        break;                    case EXPRTOKEN_AXISNAME_ATTRIBUTE:                        System.out.print("<AXISNAME_ATTRIBUTE/>");                        break;                    case EXPRTOKEN_AXISNAME_CHILD:                        System.out.print("<AXISNAME_CHILD/>");                        break;                    case EXPRTOKEN_AXISNAME_DESCENDANT:                        System.out.print("<AXISNAME_DESCENDANT/>");                        break;                    case EXPRTOKEN_AXISNAME_DESCENDANT_OR_SELF:                        System.out.print("<AXISNAME_DESCENDANT_OR_SELF/>");                        break;                    case EXPRTOKEN_AXISNAME_FOLLOWING:                        System.out.print("<AXISNAME_FOLLOWING/>");                        break;                    case EXPRTOKEN_AXISNAME_FOLLOWING_SIBLING:                        System.out.print("<AXISNAME_FOLLOWING_SIBLING/>");                        break;                    case EXPRTOKEN_AXISNAME_NAMESPACE:                        System.out.print("<AXISNAME_NAMESPACE/>");                        break;                    case EXPRTOKEN_AXISNAME_PARENT:                        System.out.print("<AXISNAME_PARENT/>");                        break;                    case EXPRTOKEN_AXISNAME_PRECEDING:                        System.out.print("<AXISNAME_PRECEDING/>");                        break;                    case EXPRTOKEN_AXISNAME_PRECEDING_SIBLING:                        System.out.print("<AXISNAME_PRECEDING_SIBLING/>");                        break;                    case EXPRTOKEN_AXISNAME_SELF:                        System.out.print("<AXISNAME_SELF/>");                        break;                    case EXPRTOKEN_LITERAL:                        System.out.print("<LITERAL");                        System.out.print(" value=\"" + getTokenString(fTokens[++i]) + "\"");                        System.out.print("/>");                        break;                    case EXPRTOKEN_NUMBER:                        System.out.print("<NUMBER");                        System.out.print(" whole=\"" + getTokenString(fTokens[++i]) + "\"");                        System.out.print(" part=\"" + getTokenString(fTokens[++i]) + "\"");                        System.out.print("/>");                        break;                    case EXPRTOKEN_VARIABLE_REFERENCE:                        System.out.print("<VARIABLE_REFERENCE");                        if (fTokens[++i] != -1)                            System.out.print(" prefix=\"" + getTokenString(fTokens[i]) + "\"");                        System.out.print(" localpart=\"" + getTokenString(fTokens[++i]) + "\"");                        System.out.print("/>");                        break;                    default:                        System.out.println("<???/>");                    }                }                System.out.println();            //}        }    } // class Tokens    /**     * @xerces.internal     *      * @author Glenn Marcy, IBM     * @author Andy Clark, IBM     *     * @version $Id: XPath.java,v 1.3 2005/09/26 13:02:31 sunithareddy Exp $     */    private static class Scanner {        /**         * 7-bit ASCII subset         *         *  0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F         *  0,  0,  0,  0,  0,  0,  0,  0,  0, HT, LF,  0,  0, CR,  0,  0,  // 0         *  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 1         * SP,  !,  ",  #,  $,  %,  &,  ',  (,  ),  *,  +,  ,,  -,  .,  /,  // 2         *  0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  :,  ;,  <,  =,  >,  ?,  // 3         *  @,  A,  B,  C,  D,  E,  F,  G,  H,  I,  J,  K,  L,  M,  N,  O,  // 4         *  P,  Q,  R,  S,  T,  U,  V,  W,  X,  Y,  Z,  [,  \,  ],  ^,  _,  // 5         *  `,  a,  b,  c,  d,  e,  f,  g,  h,  i,  j,  k,  l,  m,  n,  o,  // 6         *  p,  q,  r,  s,  t,  u,  v,  w,  x,  y,  z,  {,  |,  },  ~, DEL  // 7         */        private static final byte            CHARTYPE_INVALID            =  0,   // invalid XML character            CHARTYPE_OTHER              =  1,   // not special - one of "#%&;?\^`{}~" or DEL            CHARTYPE_WHITESPACE         =  2,   // one of "\t\n\r " (0x09, 0x0A, 0x0D, 0x20)            CHARTYPE_EXCLAMATION        =  3,   // '!' (0x21)            CHARTYPE_QUOTE              =  4,   // '\"' or '\'' (0x22 and 0x27)            CHARTYPE_DOLLAR             =  5,   // '$' (0x24)            CHARTYPE_OPEN_PAREN         =  6,   // '(' (0x28)            CHARTYPE_CLOSE_PAREN        =  7,   // ')' (0x29)            CHARTYPE_STAR               =  8,   // '*' (0x2A)            CHARTYPE_PLUS               =  9,   // '+' (0x2B)            CHARTYPE_COMMA              = 10,   // ',' (0x2C)            CHARTYPE_MINUS              = 11,   // '-' (0x2D)            CHARTYPE_PERIOD             = 12,   // '.' (0x2E)            CHARTYPE_SLASH              = 13,   // '/' (0x2F)            CHARTYPE_DIGIT              = 14,   // '0'-'9' (0x30 to 0x39)            CHARTYPE_COLON              = 15,   // ':' (0x3A)            CHARTYPE_LESS               = 16,   // '<' (0x3C)            CHARTYPE_EQUAL              = 17,   // '=' (0x3D)            CHARTYPE_GREATER            = 18,   // '>' (0x3E)            CHARTYPE_ATSIGN             = 19,   // '@' (0x40)            CHARTYPE_LETTER             = 20,   // 'A'-'Z' or 'a'-'z' (0x41 to 0x5A and 0x61 to 0x7A)            CHARTYPE_OPEN_BRACKET       = 21,   // '[' (0x5B)            CHARTYPE_CLOSE_BRACKET      = 22,   // ']' (0x5D)            CHARTYPE_UNDERSCORE         = 23,   // '_' (0x5F)            CHARTYPE_UNION              = 24,   // '|' (0x7C)            CHARTYPE_NONASCII           = 25;   // Non-ASCII Unicode codepoint (>= 0x80)        private static final byte[] fASCIICharMap = {            0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  2,  0,  0,  2,  0,  0,            0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,            2,  3,  4,  1,  5,  1,  1,  4,  6,  7,  8,  9, 10, 11, 12, 13,           14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15,  1, 16, 17, 18,  1,           19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,           20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21,  1, 22,  1, 23,            1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,           20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,  1, 24,  1,  1,  1        };        /**         * Symbol literals         */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -