IXmlPullParser 接口

定义

XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。

[Android.Runtime.Register("org/xmlpull/v1/XmlPullParser", "", "Org.XmlPull.V1.IXmlPullParserInvoker")]
public interface IXmlPullParser : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("org/xmlpull/v1/XmlPullParser", "", "Org.XmlPull.V1.IXmlPullParserInvoker")>]
type IXmlPullParser = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
派生
属性
实现

注解

XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。

根据以下不同类型的分析程序,在 XML 1.0 规范中将FEATURE_PROCESS_DOCDECL设置为 true li b 验证 xml 1.0 FEATURE_VALIDATION 规范中定义的功能:<ul><li><b>非验证</b>> 分析器(这意味着FEATURE_PROCESS_DOCDECL为 true<><><)li><如果FEATURE_PROCESS_DOCDECL为 false(这是默认值,如果在启动分析之前必须更改不同的值),则分析程序的行为类似于 XML 1.0 兼容的不符合验证分析程序的条件<>,即 XML 文档中没有 DOCDECL 存在</em>(仍可使用 defineEntityReplacementText(内部 entites 仍可使用 defineEntityReplacementText()定义)。 此操作模式适用于<>在受约束的环境</b>(如 J2ME)中执行的操作。 </ul>

有两个关键方法:next() 和 nextToken()。 虽然 next() 提供对高级分析事件的访问权限,但 nextToken() 允许访问较低级别的令牌。

分析程序当前的事件状态可以通过调用 getEventType() 方法来确定。 最初,分析器处于START_DOCUMENT状态。

next() 方法将分析器推进到下一个事件。 从下一步返回的 int 值确定当前分析程序状态,与从以下调用 getEventType 返回的值相同。

以下事件类型由 next()<dl<>dt>START_TAG<dd> An XML start tag 读取。 <已读取 dt>TEXT<dd> Text 内容;可以使用 getText() 方法检索文本内容。 (在验证模式 next() 不会报告可忽略的空格时,请改<用 nextToken()dt>END_TAG dd> 已读取<结束标记 dt>END_DOCUMENT<dd> 没有更多事件可用 </dl<>

在第一个 next() 或 nextToken() (或任何其他 next*() 方法调用后,用户应用程序可以通过以下方式从 XML 声明获取 XML 版本、独立和编码:<ul><li><b>version</b>: getProperty(”http://xmlpull.org/v1/doc/properties.html#xmldecl-version“)如果 XMLDecl 未读取或属性不受 li><b>独立</b> 支持<,则返回 String (“1.0”) 或 null:getProperty(”http://xmlpull.org/v1/doc/properties.html#xmldecl-standalone“)返回布尔值:如果没有独立声明,或者如果不支持属性,则当 standalone=“yes” 和 Boolean(false) 时返回 boolean;如果 standalone=“<><<>>yes” 和 Boolean(false) 时返回 null:如果 stream 具有未知编码(未在 setInputStream 中设置),则为 null;如果未在 XMLDecl </ul 中声明>

使用此 API 的最小示例如下所示:

import java.io.IOException;
            import java.io.StringReader;

            import org.xmlpull.v1.XmlPullParser;
            import org.xmlpull.v1.<a href="XmlPullParserException.html">XmlPullParserException</a>;
            import org.xmlpull.v1.<a href="XmlPullParserFactory.html">XmlPullParserFactory</a>;

            public class SimpleXmlPullApp
            {

                public static void main (String args[])
                    throws XmlPullParserException, IOException
                {
                    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                    factory.setNamespaceAware(true);
                    XmlPullParser xpp = factory.newPullParser();

                    xpp.<a href="#setInput">setInput</a>( new StringReader ( "&lt;foo>Hello World!&lt;/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.<a href="#getName()">getName()</a>);
                     } else if(eventType == XmlPullParser.END_TAG) {
                         System.out.println("End tag "+xpp.getName());
                     } else if(eventType == XmlPullParser.TEXT) {
                         System.out.println("Text "+xpp.<a href="#getText()">getText()</a>);
                     }
                     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

Java文档org.xmlpull.v1.XmlPullParser

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

字段

名称 说明
FeatureProcessDocdecl

此功能确定是否处理文档声明。

FeatureProcessNamespaces

此功能确定分析程序是否处理命名空间。

FeatureReportNamespaceAttributes

此功能确定命名空间属性是否通过属性访问方法公开。

FeatureValidation

如果激活此功能,则 XML 1 中定义的所有验证错误。

NoNamespace

此常量表示默认命名空间(空字符串“”)

属性

名称 说明
AttributeCount

返回当前开始标记的属性数;如果未START_TAG当前事件类型,则返回 -1

ColumnNumber

返回从 0 开始的当前列号。

Depth

返回元素的当前深度。

EventType

返回当前事件的类型(START_TAG、END_TAG、TEXT 等)。

Handle

获取基础 Android 对象的 JNI 值。

(继承自 IJavaObject)
InputEncoding

如果已知,则返回输入编码,否则返回 null。

IsEmptyElementTag

如果当前事件START_TAG并且标记已退化(例如 <foobar/),>则返回 true。

IsWhitespace

检查当前 TEXT 事件是否仅包含空格字符。

JniIdentityHashCode

返回包装实例的值 java.lang.System.identityHashCode()

(继承自 IJavaPeerable)
JniManagedPeerState

托管对等方的状态。

(继承自 IJavaPeerable)
JniPeerMembers

成员访问和调用支持。

(继承自 IJavaPeerable)
LineNumber

返回从 1 开始的当前行号。

Name

对于START_TAG或END_TAG事件,启用命名空间时将返回当前元素的(本地)名称。

Namespace

返回当前元素的命名空间 URI。

PeerReference

返回JniObjectReference包装的Java对象实例。

(继承自 IJavaPeerable)
PositionDescription

返回描述当前分析程序状态的简短文本,包括位置、当前事件的说明以及数据源(如果已知)。

Prefix

返回当前元素的前缀。

Text

以字符串形式返回当前事件的文本内容。

Types

此数组可用于将事件类型整数常量(如START_TAG或 TEXT)转换为字符串。

方法

名称 说明
DefineEntityReplacementText(String, String)

XML 1.0 第 4.5 节 4.5 构造内部实体替换文本中定义的实体替换文本设置新值。

Disposed()

在释放实例时调用。

(继承自 IJavaPeerable)
DisposeUnlessReferenced()

如果没有对此实例的未完成引用,则调用 Dispose();否则不执行任何操作。

(继承自 IJavaPeerable)
Finalized()

在实例完成时调用。

(继承自 IJavaPeerable)
GetAttributeName(Int32)

如果启用了命名空间,则返回指定属性的本地名称;如果禁用命名空间,则返回仅返回属性名称。

GetAttributeNamespace(Int32)

返回具有给定索引的属性的命名空间 URI(从 0 开始)。

GetAttributePrefix(Int32)

如果元素没有前缀,则返回指定属性的前缀返回 null。

GetAttributeType(Int32)

返回指定属性的类型(如果分析器未验证它必须返回 CDATA)。

GetAttributeValue(Int32)

返回给定的属性值。

GetAttributeValue(String, String)

返回命名空间 URI 和命名空间 localName 标识的特性值。

GetFeature(String)

返回给定功能的当前值。

GetNamespace(String)

根据分析器当前状态返回对应于给定前缀的 URI。

GetNamespaceCount(Int32)

返回给定深度的命名空间堆栈中的元素数。

GetNamespacePrefix(Int32)

返回命名空间堆栈中给定位置的命名空间前缀。

GetNamespaceUri(Int32)

返回命名空间堆栈中给定位置的命名空间 URI 如果位置超过范围,则会引发异常。

GetProperty(String)

查找属性的值。

GetTextCharacters(Int32[])

返回包含当前事件文本的缓冲区,以及与当前事件相关的起始偏移量和长度。

IsAttributeDefault(Int32)

如果在 XML 中未在输入中声明指定的属性,则返回。

Next()

获取下一个分析事件 - 元素内容将被合并,并且整个元素内容只能返回一个 TEXT 事件(注释和处理指令将被忽略,并且如果无法展开实体引用,则必须引发实体引用或异常)。

NextTag()

如果START_TAG或END_TAG则调用 next()并返回事件,否则将引发异常。

NextText()

如果当前事件START_TAG,则如果下一个元素为 TEXT,则返回元素内容;如果END_TAG则返回下一个事件,则返回空字符串,否则将引发异常。

NextToken()

此方法的工作方式类似于 next(),但如果这些类型在输入中可用,则会公开其他事件类型(COMMENT、CDSECT、DOCDECL、ENTITY_REF、PROCESSING_INSTRUCTION 或 IGNORABLE_WHITESPACE)。

Require(XmlPullParserNode, String, String)

测试当前事件是否为给定类型,以及命名空间和名称是否匹配。

SetFeature(String, Boolean)

使用此调用可更改分析程序(如命名空间处理或 doctype 声明处理)的一般行为。

SetInput(Reader)

将分析器的输入源设置为给定的读取器并重置分析器。

SetInput(Stream, String)

设置分析程序要处理的输入流。

SetJniIdentityHashCode(Int32)

设置由 JniIdentityHashCode. 返回的值。

(继承自 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。

(继承自 IJavaPeerable)
SetPeerReference(JniObjectReference)

设置由 PeerReference. 返回的值。

(继承自 IJavaPeerable)
SetProperty(String, Object)

设置属性的值。

UnregisterFromRuntime()

取消注册此实例,使运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。

(继承自 IJavaPeerable)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。

NextAsync(IXmlPullParser)

XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。

NextTagAsync(IXmlPullParser)

XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。

NextTextAsync(IXmlPullParser)

XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。

NextTokenAsync(IXmlPullParser)

XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于