|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.ximpleware.VTDNav
public class VTDNav
The VTD Navigator allows one to navigate XML document represented in VTD records and Location caches. There is one and only one cursor that you can navigate to any part of the tree. If a method operating on a node doesn't accept the node as input, by default it refers to the cursor element. The hierarchy consists entirely of elements.
Method Summary | |
---|---|
int |
compareRawTokenString(int index,
java.lang.String s)
New in 2.0 Compare the string against the token at the given index value. |
int |
compareTokens(int i1,
VTDNav vn2,
int i2)
New in 2.0 This method compares two VTD tokens of VTDNav objects The behavior of this method is like compare the strings corresponds to i1 and i2, meaning for text or attribute val, entities will be converted into the corresponding char |
int |
compareTokenString(int index,
java.lang.String s)
New in 2.0 Compare the string against the token at the given index value. |
boolean |
contains(int index,
java.lang.String s)
Test whether a given token contains s. |
void |
dumpXML(java.io.OutputStream os)
Dump the in memory XML text into output stream |
void |
dumpXML(java.lang.String fileName)
Dump the in-memory copy of XML text into a file |
VTDNav |
duplicateNav()
Duplicate the VTDNav instance with shared XML, VTD and LC buffers This method may be useful for parallel XPath evaluation |
boolean |
endsWith(int index,
java.lang.String s)
Test the end of token content at index i matches the content of s, notice that this is to save the string allocation cost of using String's built-in endsWidth |
int |
getAttrCount()
Return the attribute count of the element at the cursor position. |
int |
getAttrVal(java.lang.String an)
Get the token index of the attribute value given an attribute name. |
int |
getAttrValNS(java.lang.String URL,
java.lang.String ln)
Get the token index of the attribute value of given URL and local name. |
int |
getCurrentDepth()
Get the depth (>=0) of the current element. |
int |
getCurrentIndex()
Get the index value of the current element. |
long |
getElementFragment()
Get the starting offset and length of an element encoded in a long, upper 32 bits is length; lower 32 bits is offset Unit is in byte. |
ElementFragmentNs |
getElementFragmentNs()
getElementFragmentNS returns a ns aware version of the element fragment encapsulated in an ElementFragment object |
int |
getEncoding()
Get the encoding of the XML document. |
long |
getIndexSize()
Precompute the size of VTD+XML index |
int |
getNestingLevel()
Get the maximum nesting depth of the XML document (>0). |
int |
getNormalizedStringLength(int index)
Get the string length of a token as if it is converted into a normalized UCS string |
int |
getOffsetAfterHead()
Return the offset after head (the ending bracket of the starting tag, not including an empty element, in which case -1 is returned) |
int |
getRawStringLength(int index)
Get the string length as if the token is converted into a UCS string (entity not resolved) |
int |
getRootIndex()
Get root index value , which is the index val of root element |
int |
getStringLength(int index)
getStringLength return the string length of a token as if the token is converted into a string (entity resolved for character data and attr val) |
int |
getText()
This method returns of the token index of the type character data or CDATA. |
int |
getTokenCount()
Get total number of VTD tokens for the current XML document. |
int |
getTokenDepth(int index)
Get the depth value of a token (>=0). |
int |
getTokenLength(int index)
Get the token length at the given index value please refer to VTD spec for more details Length is in terms of the UTF char unit For prefixed tokens, it is the qualified name length. |
int |
getTokenOffset(int index)
Get the starting offset (unit in native char) of the token at the given index. |
int |
getTokenType(int index)
Get the token type of the token at the given index value. |
com.ximpleware.IByteBuffer |
getXML()
Get the XML document |
boolean |
hasAttr(java.lang.String an)
Test whether current element has an attribute with the matching name. |
boolean |
hasAttrNS(java.lang.String URL,
java.lang.String ln)
Test whether the current element has an attribute with matching namespace URL and localname. |
boolean |
matchElement(java.lang.String en)
Test if the current element matches the given name. |
boolean |
matchElementNS(java.lang.String URL,
java.lang.String ln)
Test whether the current element matches the given namespace URL and localname. |
boolean |
matchRawTokenString(int index,
java.lang.String s)
Match the string against the token at the given index value. |
boolean |
matchTokens(int i1,
VTDNav vn2,
int i2)
This method matches two VTD tokens of VTDNav objects |
boolean |
matchTokenString(int index,
java.lang.String s)
Match the string against the token at the given index value. |
boolean |
overWrite(int index,
byte[] ba)
overWrite is introduced in version 2.0 that allows you to directly overwrite the XML content if the token is long enough If the operation is successful, the new content along with whitespaces will fill the available token space, and there will be no need to regenerate the VTD and LCs !!! The current version (2.0) only allows overwrites on attribute value, character data, and CDATA Consider the XML below: good After overwriting the token "good" with "bad," the new XML looks like: bad as you can see, "goo" is replaced with "bad" character-by-character, and the remaining "d" is replace with a white space |
boolean |
overWrite(int index,
byte[] ba,
int offset,
int len)
overWrite is introduced in version 2.0 that allows you to directly overwrite the XML content if the token is long enough If the operation is successful, white spaces will be used to fill the available token space, and there will be no need to regenerate the VTD and LCs The current version (2.0) only allows overwrites on attribute value, character data, and CDATA Consider the XML below: good After overwriting the token "good" with "bad," the new XML looks like: bad as you can see, "goo" is replaced with "bad", and the remaining "d" is replace with a white space |
double |
parseDouble(int index)
Convert a vtd token into a double. |
float |
parseFloat(int index)
Convert a vtd token into a float. |
int |
parseInt(int index)
Convert a vtd token into an int. |
long |
parseLong(int index)
Convert a vtd token into a long. |
boolean |
pop()
Load the context info from ContextBuffer. |
void |
push()
Store the context info into the ContextBuffer. |
void |
sampleState(FastIntBuffer fib)
This is for debugging purpose |
boolean |
startsWith(int index,
java.lang.String s)
Test the start of token content at index i matches the content of s, notice that this is to save the string allocation cost of using String's built-in startsWidth |
boolean |
toElement(int direction)
A generic navigation method. |
boolean |
toElement(int direction,
java.lang.String en)
A generic navigation method. |
boolean |
toElementNS(int direction,
java.lang.String URL,
java.lang.String ln)
A generic navigation method with namespace support. |
java.lang.String |
toNormalizedString(int index)
This method normalizes a token into a string value of character data and attr val in a way that resembles DOM. |
java.lang.String |
toRawString(int index)
Convert a token at the given index to a String, (entities and char references not expanded). |
java.lang.String |
toRawStringLowerCase(int index)
Convert a token at the given index to a String, upper case chars get converted into lower case (entities and char references not expanded). |
java.lang.String |
toRawStringUpperCase(int index)
Convert a token at the given index to a String, lower case chars get converted into upper case (entities and char references not expanded). |
java.lang.String |
toString(int index)
Convert a token at the given index to a String, (entities and char references resolved character data and attr val). |
java.lang.String |
toStringLowerCase(int index)
Convert a token at the given index to a String and any upper case character will be converted to lower case, (entities and char references resolved for character data and attr val). |
java.lang.String |
toStringUpperCase(int index)
Convert a token at the given index to a String and any lower case character will be converted to upper case, (entities and char references resolved character data and attr val). |
void |
writeIndex(java.io.OutputStream os)
Write VTDNav's internal structure into an OutputStream |
void |
writeIndex(java.lang.String fileName)
Write VTDNav's internal structure into a VTD+XML file |
void |
writeSeparateIndex(java.io.OutputStream os)
Write VTDNav's VTD and LCs into an OutputStream (XML not written out) |
void |
writeSeparateIndex(java.lang.String fileName)
Write VTDNav's internal structure (VTD and LCs, but not XML) into a file |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int FC
public static final int FIRST_CHILD
public static final int FORMAT_ASCII
public static final int FORMAT_ISO_8859_1
public static final int FORMAT_ISO_8859_10
public static final int FORMAT_ISO_8859_11
public static final int FORMAT_ISO_8859_12
public static final int FORMAT_ISO_8859_13
public static final int FORMAT_ISO_8859_14
public static final int FORMAT_ISO_8859_15
public static final int FORMAT_ISO_8859_16
public static final int FORMAT_ISO_8859_2
public static final int FORMAT_ISO_8859_3
public static final int FORMAT_ISO_8859_4
public static final int FORMAT_ISO_8859_5
public static final int FORMAT_ISO_8859_6
public static final int FORMAT_ISO_8859_7
public static final int FORMAT_ISO_8859_8
public static final int FORMAT_ISO_8859_9
public static final int FORMAT_UTF_16BE
public static final int FORMAT_UTF_16LE
public static final int FORMAT_UTF8
public static final int FORMAT_WIN_1250
public static final int FORMAT_WIN_1251
public static final int FORMAT_WIN_1252
public static final int FORMAT_WIN_1253
public static final int FORMAT_WIN_1254
public static final int FORMAT_WIN_1255
public static final int FORMAT_WIN_1256
public static final int FORMAT_WIN_1257
public static final int FORMAT_WIN_1258
public static final int LAST_CHILD
public static final int LC
public static final int NEXT_SIBLING
public static final int NS
public static final int P
public static final int PARENT
public static final int PREV_SIBLING
public static final int PS
public static final int R
public static final int ROOT
public static final int STRING_NORMALIZED
public static final int STRING_RAW
public static final int STRING_REGULAR
public static final int TOKEN_ATTR_NAME
public static final int TOKEN_ATTR_NS
public static final int TOKEN_ATTR_VAL
public static final int TOKEN_CDATA_VAL
public static final int TOKEN_CHARACTER_DATA
public static final int TOKEN_COMMENT
public static final int TOKEN_DEC_ATTR_NAME
public static final int TOKEN_DEC_ATTR_VAL
public static final int TOKEN_DOCUMENT
public static final int TOKEN_DTD_VAL
public static final int TOKEN_ENDING_TAG
public static final int TOKEN_PI_NAME
public static final int TOKEN_PI_VAL
public static final int TOKEN_STARTING_TAG
Method Detail |
---|
public final int compareRawTokenString(int index, java.lang.String s) throws NavException
index
- s
-
NavException
public final int compareTokens(int i1, VTDNav vn2, int i2) throws NavException
i1
- vn2
- i2
-
NavException
public final int compareTokenString(int index, java.lang.String s) throws NavException
index
- s
-
NavException
public final boolean contains(int index, java.lang.String s) throws NavException
index
- s
-
NavException
public void dumpXML(java.io.OutputStream os) throws java.io.IOException
os
-
java.io.IOException
public void dumpXML(java.lang.String fileName) throws java.io.IOException
fileName
-
java.io.IOException
public final VTDNav duplicateNav()
public final boolean endsWith(int index, java.lang.String s) throws NavException
i
-
NavException
public int getAttrCount()
public int getAttrVal(java.lang.String an) throws NavException
an
- java.lang.String
NavException
- The exception if the underlying byte content contains
various errors. Notice that we are being conservative in
making little assumption on the correctness of underlying
byte content. This is because the VTD etc can be generated
by another machine from a load-balancer.
IllegalArguementException
- if an is nullpublic int getAttrValNS(java.lang.String URL, java.lang.String ln) throws NavException
URL
- java.lang.String (Name space URL)ln
- java.lang.String (local name)
NavException
- The exception if the underlying byte content contains
various errors. Notice that we are being conservative in
making little assumption on the correctness of underlying
byte content. This is because the VTD etc can be generated
by another machine from a load-balancer.
IllegalArguementException
- if s is nullpublic final int getCurrentDepth()
public final int getCurrentIndex()
public long getElementFragment() throws NavException
NavException
public ElementFragmentNs getElementFragmentNs() throws NavException
NavException
public final int getEncoding()
public long getIndexSize()
public final int getNestingLevel()
public final int getNormalizedStringLength(int index) throws NavException
index
-
NavException
public final int getOffsetAfterHead()
public final int getRawStringLength(int index) throws NavException
index
-
NavException
public final int getRootIndex()
public final int getStringLength(int index) throws NavException
index
-
NavException
public int getText()
public final int getTokenCount()
public final int getTokenDepth(int index)
index
- int
public int getTokenLength(int index)
index
- int
public final int getTokenOffset(int index)
index
- int
public final int getTokenType(int index)
index
- int
public final com.ximpleware.IByteBuffer getXML()
public final boolean hasAttr(java.lang.String an) throws NavException
an
- java.lang.String
NavException
- The exception if the underlying byte content contains
various errors. Notice that we are being conservative in
making little assumption on the correctness of underlying
byte content. This is because the VTD etc can be generated
by another machine from a load-balancer.
IllegalArguementException
- if an is nullpublic final boolean hasAttrNS(java.lang.String URL, java.lang.String ln) throws NavException
URL
- java.lang.String (namespace URL)ln
- java.lang.String (localname )
NavException
- The exception if the underlying byte content contains
various errors. Notice that we are being conservative in
making little assumption on the correctness of underlying
byte content. This is because the VTD can be generated by
another machine such as a load-balancer.
IllegalArguementException
- if ln is nullpublic final boolean matchElement(java.lang.String en) throws NavException
en
- java.lang.String
NavException
- If the underlying raw char representation has errors.public final boolean matchElementNS(java.lang.String URL, java.lang.String ln) throws NavException
URL
- java.lang.Stringln
- java.lang.String
NavException
- When there is any encoding conversion error or unknown
entity.
java.lang.IllegalArgumentException
- if ln == nullpublic final boolean matchRawTokenString(int index, java.lang.String s) throws NavException
index
- int (index into the VTD token buffer)s
- java.lang.String
NavException
- When if the underlying byte content contains various
errors. Notice that we are being conservative in making
little assumption on the correctness of underlying byte
content. This is because the VTD can be generated by
another machine such as a load-balancer.public final boolean matchTokens(int i1, VTDNav vn2, int i2) throws NavException
i1
- index of the first tokenvn2
- the second VTDNav instancei2
- index of the second token
NavException
public final boolean matchTokenString(int index, java.lang.String s) throws NavException
index
- ints
- java.lang.String
NavException
- When if the underlying byte content contains various
errors. Notice that we are being conservative in making
little assumption on the correctness of underlying byte
content. This is because the VTD can be generated by
another machine such as a load-balancer.public final boolean overWrite(int index, byte[] ba)
index
- ba
- the byte array contains the new content to be overwritten
public boolean overWrite(int index, byte[] ba, int offset, int len)
index
- the VTD record to which the change will be appliedba
- the byte array contains the new content to be overwrittenoffset
- len
-
public double parseDouble(int index) throws NavException
NavException
- The exception if the underlying byte content contains
various errors. Notice that we are being conservative in
making little assumption on the correctness of underlying
byte content. This is because the VTD can be generated by
another machine such as a load-balancer.public float parseFloat(int index) throws NavException
NavException
- The exception if the underlying byte content contains
various errors. Notice that we are being conservative in
making little assumption on the correctness of underlying
byte content. This is because the VTD can be generated by
another machine such as a load-balancer.public int parseInt(int index) throws NavException
index
- int
NavException
- The exception if the underlying byte content contains
various errors. Notice that we are being conservative in
making little assumption on the correctness of underlying
byte content. This is because the VTD can be generated by
another machine such as a load-balancer.public long parseLong(int index) throws NavException
index
- int
NavException
- The exception if the underlying byte content contains
various errors. Notice that we are being conservative in
making little assumption on the correctness of underlying
byte content. This is because the VTD can be generated by
another machine such as a load-balancer.public final boolean pop()
public final void push()
public void sampleState(FastIntBuffer fib)
fib
- public final boolean startsWith(int index, java.lang.String s) throws NavException
i
- s
-
NavException
public boolean toElement(int direction) throws NavException
ROOT 0
PARENT 1
FIRST_CHILD 2
LAST_CHILD 3
NEXT_SIBLING 4
PREV_SIBLING 5
direction
- int
NavException
- When direction value is illegal.public boolean toElement(int direction, java.lang.String en) throws NavException
ROOT 0
PARENT 1
FIRST_CHILD 2
LAST_CHILD 3
NEXT_SIBLING 4
PREV_SIBLING 5
direction
- inten
- String
NavException
- When direction value is illegal. Or there are errors in
underlying byte representation of the document
IllegalArguementException
- if en is nullpublic boolean toElementNS(int direction, java.lang.String URL, java.lang.String ln) throws NavException
ROOT 0
PARENT 1
FIRST_CHILD 2
LAST_CHILD 3
NEXT_SIBLING 4
PREV_SIBLING 5
direction
- intURL
- Stringln
- String
NavException
- When direction value is illegal. Or there are errors in
underlying byte representation of the documentpublic java.lang.String toNormalizedString(int index) throws NavException
index
- int
NavException
- When the encoding has errorspublic final java.lang.String toRawString(int index) throws NavException
index
- int
NavException
- When the encoding has errorspublic final java.lang.String toRawStringLowerCase(int index) throws NavException
index
-
NavException
public final java.lang.String toRawStringUpperCase(int index) throws NavException
index
-
NavException
public java.lang.String toString(int index) throws NavException
index
-
NavException
public java.lang.String toStringLowerCase(int index) throws NavException
index
-
NavException
public java.lang.String toStringUpperCase(int index) throws NavException
index
-
NavException
public void writeIndex(java.io.OutputStream os) throws IndexWriteException, java.io.IOException
os
-
IndexWriteException
java.io.IOException
public void writeIndex(java.lang.String fileName) throws java.io.IOException, IndexWriteException
fileName
-
java.io.IOException
IndexWriteException
public void writeSeparateIndex(java.io.OutputStream os) throws IndexWriteException, java.io.IOException
os
-
IndexWriteException
java.io.IOException
public void writeSeparateIndex(java.lang.String fileName) throws java.io.IOException, IndexWriteException
fileName
-
java.io.IOException
IndexWriteException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |