IXmlPullParser 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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 ( "<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.<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 |
返回包装实例的值 |
| 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) | |
| Disposed() |
在释放实例时调用。 (继承自 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果没有对此实例的未完成引用,则调用 |
| 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) |
设置由 |
| SetJniManagedPeerState(JniManagedPeerStates) |
XML 拉取分析器是一个接口,用于定义 XMLPULL V1 API 中提供的分析功能(请访问此网站了解有关 API 及其实现的详细信息)。 (继承自 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
设置由 |
| SetProperty(String, Object) |
设置属性的值。 |
| UnregisterFromRuntime() |
取消注册此实例,使运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。 (继承自 IJavaPeerable) |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| 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) |
尝试强制 |