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 及其实现) 的详细信息。

根据设置的功能,有以下不同类型的分析程序:<当>>><<FEATURE_PROCESS_DOCDECL 设置为 true 时,FEATURE_PROCESS_DOCDECL 设置为 true <时><,FEATURE_VALIDATION为 true (时,将设置在 XML 1.0 规范中定义的 ul li b>non-validating</b> parser</b>,这表示FEATURE_PROCESS_DOCDECL为 true) li><如果 FEATURE_PROCESS_DOCDECL 为 false (这是默认值,并且如果需要不同的值,则必须在开始分析之前更改) 则分析程序的行为类似于 XML 1.0 兼容的非验证分析程序,前提是 <>XML 文档中没有 DOCDECL/<em>, (内部 entites 仍可使用 defineEntityReplacementText () ) 进行定义。 此操作模式适用于<>受约束环境</b>(如 J2ME)中的操作。 </ul>

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

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

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

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

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

org.xmlpull.v1.XmlPullParserJava 文档。

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

字段

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

以 String 形式返回当前事件的文本内容。

Types

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

方法

DefineEntityReplacementText(String, String)

为实体替换文本设置新值,如 XML 1.0 第 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)

扩展方法

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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 及其实现) 的详细信息。

适用于