private int findIndexAfterStartingTag(int startIndex) { int index = startIndex; int tokenType = vn.getTokenType(index); if (tokenType == VTDNav.TOKEN_STARTING_TAG) ++index; // look for the first token that does not belong to the starting // tag while (tokenType == VTDNav.TOKEN_ATTR_NAME || tokenType == VTDNav.TOKEN_ATTR_VAL || tokenType == VTDNav.TOKEN_ATTR_NS || tokenType == VTDNav.TOKEN_PI_NAME || tokenType == VTDNav.TOKEN_PI_VAL) ++index; return index; }
private int getStringVal(VTDNav vn,int i){ int i1,t = vn.getTokenType(i); if (t == VTDNav.TOKEN_STARTING_TAG){ i1 = vn.getText(); return i1; } else if (t == VTDNav.TOKEN_ATTR_NAME || t == VTDNav.TOKEN_ATTR_NS || t==VTDNav.TOKEN_PI_NAME ) return i+1; else return i; }
final private int getStringVal(VTDNav vn,int i){ int i1,t = vn.getTokenType(i); if (t == VTDNav.TOKEN_STARTING_TAG){ i1 = vn.getText(); return i1; } else if (t == VTDNav.TOKEN_ATTR_NAME || t == VTDNav.TOKEN_ATTR_NS || t==VTDNav.TOKEN_PI_NAME) return i+1; else return i; }
final private int getStringVal(VTDNav vn,int i){ int i1,t = vn.getTokenType(i); if (t == VTDNav.TOKEN_STARTING_TAG){ i1 = vn.getText(); return i1; } else if (t == VTDNav.TOKEN_ATTR_NAME || t == VTDNav.TOKEN_ATTR_NS || t==VTDNav.TOKEN_PI_NAME) return i+1; else return i; }
private int getStringVal(VTDNav vn,int i){ int i1,t = vn.getTokenType(i); if (t == VTDNav.TOKEN_STARTING_TAG){ i1 = vn.getText(); return i1; } else if (t == VTDNav.TOKEN_ATTR_NAME || t == VTDNav.TOKEN_ATTR_NS || t==VTDNav.TOKEN_PI_NAME ) return i+1; else return i; }
private int getStringVal(VTDNav vn,int i){ int i1,t = vn.getTokenType(i); if (t == VTDNav.TOKEN_STARTING_TAG){ i1 = vn.getText(); return i1; } else if (t == VTDNav.TOKEN_ATTR_NAME || t == VTDNav.TOKEN_ATTR_NS || t==VTDNav.TOKEN_PI_NAME ) return i+1; else return i; }
final private int getStringVal(VTDNav vn,int i){ int i1,t = vn.getTokenType(i); if (t == VTDNav.TOKEN_STARTING_TAG){ i1 = vn.getText(); return i1; } else if (t == VTDNav.TOKEN_ATTR_NAME || t == VTDNav.TOKEN_ATTR_NS || t==VTDNav.TOKEN_PI_NAME) return i+1; else return i; }
public static String getElementText(VTDNav vn) throws NavException { StringBuilder sb = new StringBuilder(); int depth = vn.getCurrentDepth(); int i = vn.getCurrentIndex(); while (vn.getTokenType(i) == VTDNav.TOKEN_STARTING_TAG) i++; while (vn.getTokenDepth(i) >= depth && !(vn.getTokenType(i) == VTDNav.TOKEN_STARTING_TAG && vn.getTokenDepth(i) == depth) && i < vn.getTokenCount()) { if (vn.getTokenType(i) == VTDNav.TOKEN_CHARACTER_DATA || vn.getTokenType(i) == VTDNav.TOKEN_CDATA_VAL) sb.append(vn.toString(i)); i++; } return sb.toString(); }
private int increment(int sp){ int type = vn.getTokenType(sp); int vtdSize = vn.vtdBuffer.size; int i=sp+1; while(i<vtdSize && depth == vn.getTokenDepth(i) && type == vn.getTokenType(i)&& (vn.getTokenOffset(i-1)+ (int)((vn.vtdBuffer.longAt(i-1) & VTDNav.MASK_TOKEN_FULL_LEN)>>32) == vn.getTokenOffset(i)) ){ i++; } return i; }
private int increment(int sp){ int type = vn.getTokenType(sp); int vtdSize = vn.vtdBuffer.size; int i=sp+1; while(i<vtdSize && depth == vn.getTokenDepth(i) && type == vn.getTokenType(i)&& (vn.getTokenOffset(i-1)+ (int)((vn.vtdBuffer.longAt(i-1) & VTDNav.MASK_TOKEN_FULL_LEN)>>32) == vn.getTokenOffset(i)) ){ i++; } return i; }
private int increment(int sp){ int type = vn.getTokenType(sp); int vtdSize = vn.vtdBuffer.size; int i=sp+1; while(i<vtdSize && depth == vn.getTokenDepth(i) && type == vn.getTokenType(i)&& (vn.getTokenOffset(i-1)+ (int)((vn.vtdBuffer.longAt(i-1) & VTDNav.MASK_TOKEN_FULL_LEN)>>32) == vn.getTokenOffset(i)) ){ i++; } return i; }
/** * Throws an exception if the VTDNav cursor is not set to an element * starting tag. * * @throws NavException */ private void checkCursorPosition() throws NavException { if (vn.getTokenType(vn.getCurrentIndex()) != VTDNav.TOKEN_STARTING_TAG) throw new IllegalStateException("VTDNav is positioned incorrectly. It must point to a starting tag."); if (!vn.toString(vn.getCurrentIndex()).equals(elementName)) throw new IllegalStateException( "VTDNav is positioned incorrectly. It is expected to be positioned at the starting tag \"" + elementName + "\" but it is set to \"" + vn.toString(vn.getCurrentIndex()) + "\"."); }
private int findIndexAfterElement(int elementDepth, int startIndex) { int index = vn.getCurrentIndex(); int tokenType = vn.getTokenType(index); if (tokenType == VTDNav.TOKEN_STARTING_TAG) index = findIndexAfterStartingTag(index); while (index < vn.getTokenCount() && tokenIndexBelongsToElement(index, elementDepth)) ++index; return index; }
final protected void toRawString(StringBuilder sb, int index) throws NavException { int type = getTokenType(index); int len; if (type == TOKEN_STARTING_TAG || type == TOKEN_ATTR_NAME || type == TOKEN_ATTR_NS) len = getTokenLength2(index) & 0xffff; else len = getTokenLength2(index); int offset = getTokenOffset(index); toRawString(offset, len,sb); } /**
final protected void toRawString(StringBuilder sb, int index) throws NavException { int type = getTokenType(index); int len; if (type == TOKEN_STARTING_TAG || type == TOKEN_ATTR_NAME || type == TOKEN_ATTR_NS) len = getTokenLength2(index) & 0xffff; else len = getTokenLength2(index); int offset = getTokenOffset(index); toRawString(offset, len,sb); } /**
final protected void toString(StringBuilder sb, int index) throws NavException { /*int type = getTokenType(index); if (type!=TOKEN_CHARACTER_DATA && type!= TOKEN_ATTR_VAL) toRawString(sb, index);*/ int len,type; len = getTokenLength2(index); type= getTokenType(index); int offset = getTokenOffset(index); if (type!=VTDNav.TOKEN_CDATA_VAL) toString(offset, len, sb); else toRawString(offset, len, sb); }
final protected void toString(StringBuilder sb, int index) throws NavException { /*int type = getTokenType(index); if (type!=TOKEN_CHARACTER_DATA && type!= TOKEN_ATTR_VAL) toRawString(sb, index);*/ int len,type; len = getTokenLength2(index); type= getTokenType(index); int offset = getTokenOffset(index); if (type!=VTDNav.TOKEN_CDATA_VAL) toString(offset, len, sb); else toRawString(offset, len, sb); }
final protected void toStringUpperCase(StringBuilder sb, int index) throws NavException { /*int type = getTokenType(index); if (type!=TOKEN_CHARACTER_DATA && type!= TOKEN_ATTR_VAL) toRawString(sb, index);*/ int len,type; len = getTokenLength2(index); type= getTokenType(index); int offset = getTokenOffset(index); if (type!=VTDNav.TOKEN_CDATA_VAL) toStringUpperCase(offset, len, sb); else toRawStringUpperCase(offset, len, sb); }
final protected void toStringLowerCase(StringBuilder sb, int index) throws NavException { /*int type = getTokenType(index); if (type!=TOKEN_CHARACTER_DATA && type!= TOKEN_ATTR_VAL) toRawString(sb, index); */ int len,type; len = getTokenLength2(index); type= getTokenType(index); int offset = getTokenOffset(index); if (type!=VTDNav.TOKEN_CDATA_VAL) toStringLowerCase(offset, len, sb); else toRawStringLowerCase(offset, len, sb); }
protected String moveToNextStartingTag() throws DocumentParsingException { try { int i = vn.getCurrentIndex(); int tokenType = vn.getTokenType(i); while (tokenType != VTDNav.TOKEN_STARTING_TAG && i < vn.getTokenCount()) ++i; vn.recoverNode(i); return vn.toString(vn.getCurrentIndex()); } catch (NavException e) { throw new DocumentParsingException(e); } }