org.xmlpull.v1.XmlPullParser |
已知的间接子类
|
XML拉解析器是一个接口,定义分析功能提供的XMLPULL V1的API
有以下不同的解析器,根据功能设置的不同分别为:
import java.io.IOException; import java.io.StringReader; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; public class SimpleXmlPullApp { public static void main (String args[]) throws XmlPullParserException, IOException { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser xpp = factory.newPullParser(); xpp.setInput( new StringReader ( "<foo>Hello World!</foo>" ) ); int eventType = xpp.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if(eventType == XmlPullParser.START_DOCUMENT) { System.out.println("Start document"); } else if(eventType == XmlPullParser.START_TAG) { System.out.println("Start tag "+xpp.getName()); } else if(eventType == XmlPullParser.END_TAG) { System.out.println("End tag "+xpp.getName()); } else if(eventType == XmlPullParser.TEXT) { System.out.println("Text "+xpp.getText()); } eventType = xpp.next(); } System.out.println("End document"); } }
上面的例子将生成如下输出:
Start document Start tag foo Text Hello World! End tag foo End document
API用法的更多细节,请参阅http://www.xmlpull.org
int | CDSECT | A CDATA sections was just read; this token is available only from calls to nextToken(). |
int | COMMENT | XML注释 |
int | DOCDECL | An XML document type declaration was just read. |
int | END_DOCUMENT | Logical end of the xml document. |
int | END_TAG | Returned from getEventType(), next(), or nextToken() when an end tag was read. |
int | ENTITY_REF | An entity reference was just read; this token is available from nextToken() only. |
String | FEATURE_PROCESS_DOCDECL | This feature determines whether the document declaration is processed. |
String | FEATURE_PROCESS_NAMESPACES | This feature determines whether the parser processes namespaces. |
String | FEATURE_REPORT_NAMESPACE_ATTRIBUTES | This feature determines whether namespace attributes are exposed via the attribute access methods. |
String | FEATURE_VALIDATION | If this feature is activated, all validation errors as defined in the XML 1.0 specification are reported. |
int | IGNORABLE_WHITESPACE | Ignorable whitespace was just read. |
String | NO_NAMESPACE | This constant represents the default namespace (empty string "") |
int | PROCESSING_INSTRUCTION | An XML processing instruction declaration was just read. |
int | START_DOCUMENT | 解析器在文档的开头,处于即将阅读状态 |
int | START_TAG | Returned from getEventType(), next(), nextToken() when a start tag was read. |
int | TEXT | Character data was read and will is available by calling getText(). |
public static final String[] | TYPES | This array can be used to convert the event type integer constants such as START_TAG or TEXT to to a string. |
abstract void | defineEntityReplacementText(String entityName, String replacementText)
Set new value for entity replacement text as defined in
XML 1.0 Section 4.5 Construction of Internal Entity Replacement Text.
|
abstract int | getAttributeCount()
Returns the number of attributes of the current start tag, or -1 if the current event type is not START_TAG
|
abstract String | getAttributeName(int index)
Returns the local name of the specified attribute if namespaces are enabled or just attribute name if namespaces are disabled.
|
abstract String | getAttributeNamespace(int index)
Returns the namespace URI of the attribute with the given index (starts from 0).
|
abstract String | getAttributePrefix(int index)
Returns the prefix of the specified attribute Returns null if the element has no prefix.
|
abstract String | getAttributeType(int index)
Returns the type of the specified attribute If parser is non-validating it MUST return CDATA.
|
abstract String | getAttributeValue(int index)
Returns the given attributes value.
|
abstract String | getAttributeValue(String namespace, String name)
Returns the attributes value identified by namespace URI and namespace localName.
|
abstract int | getColumnNumber()
Returns the current column number, starting from 0.
|
abstract int | getDepth()
Returns the current depth of the element.
|
abstract int | getEventType()
Returns the type of the current event (START_TAG, END_TAG, TEXT, etc.)
|
abstract boolean | getFeature(String name)
Returns the current value of the given feature.
|
abstract String | getInputEncoding()
Returns the input encoding if known, null otherwise.
|
abstract int | getLineNumber()
Returns the current line number, starting from 1.
|
abstract String | getName()
For START_TAG or END_TAG events, the (local) name of the current element is returned when namespaces are enabled.
|
abstract String | getNamespace()
Returns the namespace URI of the current element.
|
abstract String | getNamespace(String prefix)
Returns the URI corresponding to the given prefix, depending on current state of the parser.
|
abstract int | getNamespaceCount(int depth)
Returns the numbers of elements in the namespace stack for the given depth.
|
abstract String | getNamespacePrefix(int pos)
Returns the namespace prefix for the given position in the namespace stack.
|
abstract String | getNamespaceUri(int pos)
Returns the namespace URI for the given position in the namespace stack If the position is out of range, an exception is thrown.
|
abstract String | getPositionDescription()
Returns a short text describing the current parser state, including the position, a description of the current event and the data source if known.
|
abstract String | getPrefix()
Returns the prefix of the current element.
|
abstract Object | getProperty(String name)
Look up the value of a property.
|
abstract String | getText()
Returns the text content of the current event as String.
|
abstract char[] | getTextCharacters(int[] holderForStartAndLength)
Returns the buffer that contains the text of the current event, as well as the start offset and length relevant for the current event.
|
abstract boolean | isAttributeDefault(int index)
Returns if the specified attribute was not in input was declared in XML.
|
abstract boolean | isEmptyElementTag()
Returns true if the current event is START_TAG and the tag is degenerated (e.g.
|
abstract boolean | isWhitespace()
Checks whether the current TEXT event contains only whitespace characters.
|
abstract int | next()
Get next parsing event - element content wil be coalesced and only one TEXT event must be returned for whole element content (comments and processing instructions will be ignored and entity references must be expanded or exception mus be thrown if entity reference can not be expanded).
|
abstract int | nextTag()
Call next() and return event if it is START_TAG or END_TAG otherwise throw an exception.
|
abstract String | nextText()
If current event is START_TAG then if next element is TEXT then element content is returned or if next event is END_TAG then empty string is returned, otherwise exception is thrown.
|
abstract int | nextToken()
This method works similarly to next() but will expose additional event types (COMMENT, CDSECT, DOCDECL, ENTITY_REF, PROCESSING_INSTRUCTION, or IGNORABLE_WHITESPACE) if they are available in input.
|
abstract void | require(int type, String namespace, String name)
Test if the current event is of the given type and if the namespace and name do match.
|
abstract void | setFeature(String name, boolean state)
Use this call to change the general behaviour of the parser, such as namespace processing or doctype declaration handling.
|
abstract void | setInput(Reader in)
Set the input source for parser to the given reader and resets the parser.
|
abstract void | setInput(InputStream inputStream, String inputEncoding)
Sets the input stream the parser is going to process.
|
abstract void | setProperty(String name, Object value)
Set the value of a property.
|