public interface XMLReader
XMLReader provides a high-level streaming parser interface for reading XML documents.
The next() method is used to read events from the XML document.
Each time it is called, next() returns the new state of the reader.
Possible states are: BOF, the initial state, START, denoting the start tag of an element, END, denoting the end tag of an element, CHARS, denoting the character content of an element, PI, denoting a processing instruction, EOF, denoting the end of the document.
Depending on the state the reader is in, one or more of the following
query methods will be meaningful: getName(), getURI(),
getLocalName(), getAttributes(), getValue().
Elements visited by a XMLReader are tagged with unique IDs. The ID of the
current element can be found by calling getElementId().
A XMLReader is always namespace-aware, and keeps track of the namespace
declarations which are in scope at any time during streaming. The
getURI(java.lang.String) method can be used to find the URI
associated to a given prefix in the current scope.
XMLReaders can be created using a XMLReaderFactory.
Some utility methods, nextContent() and nextElementContent()
make it possible to ignore whitespace and processing instructions with
minimum impact on the client code.
Similarly, the skipElement() and skipElement(int elementId)
methods allow to skip to the end tag of an element ignoring all its content.
Finally, the recordElement() method can be invoked when the XMLReader
is positioned on the start tag of an element to record the element's contents
so that they can be played back later.
XMLReaderFactory| Modifier and Type | Field and Description |
|---|---|
static int |
BOF
The initial state of a XMLReader.
|
static int |
CHARS
The state denoting the character content of an element.
|
static int |
END
The state denoting the end tag of an element.
|
static int |
EOF
The state denoting that the end of the document has been reached.
|
static int |
PI
The state denoting a processing instruction.
|
static int |
START
The state denoting the start tag of an element.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Close the XMLReader.
|
Attributes |
getAttributes()
Return the current attribute list.
|
int |
getElementId()
Return the current element ID.
|
int |
getLineNumber()
Return the current line number.
|
String |
getLocalName()
Return the current local name.
|
QName |
getName()
Return the current qualified name.
|
Iterator |
getPrefixes()
Return an iterator on all prefixes in scope, except for the default prefix.
|
int |
getState()
Return the current state of the XMLReader.
|
String |
getURI()
Return the current URI.
|
String |
getURI(String prefix)
Return the URI for the given prefix.
|
String |
getValue()
Return the current value.
|
int |
next()
Return the next state of the XMLReader.
|
int |
nextContent() |
int |
nextElementContent()
Return the next state of the XMLReader.
|
XMLReader |
recordElement()
Records the current element and leaves the reader positioned on its end tag.
|
void |
skipElement()
Skip all nodes up to the end tag of the element with the current element ID.
|
void |
skipElement(int elementId)
Skip all nodes up to the end tag of the element with the given element ID.
|
static final int BOF
static final int START
static final int END
static final int CHARS
static final int PI
static final int EOF
int next()
int nextContent()
int nextElementContent()
Whitespace character content, processing instructions are ignored. Non-whitespace character content triggers an exception.
The return value is one of: START, END, EOF.
int getState()
QName getName()
Meaningful only when the state is one of: START, END.
String getURI()
Meaningful only when the state is one of: START, END.
String getLocalName()
Meaningful only when the state is one of: START, END, PI.
Attributes getAttributes()
Meaningful only when the state is one of: START.
The returned Attributes object belong to the XMLReader and is
only guaranteed to be valid until the next() method is called,
directly or indirectly.
String getValue()
Meaningful only when the state is one of: CHARS, PI.
int getElementId()
int getLineNumber()
Due to aggressive parsing, this value may be off by a few lines.
String getURI(String prefix)
If there is no namespace declaration in scope for the given prefix, return null.
Iterator getPrefixes()
XMLReader recordElement()
The XMLReader must be positioned on the start tag of the element. The returned reader will play back all events starting with the start tag of the element and ending with its end tag.
void skipElement()
void skipElement(int elementId)
void close()
All subsequent calls to next() will return EOF.
Copyright © 2017–2019 Eclipse Foundation. All rights reserved.