Share via


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_VALIDATION為 true (時,xml 1.0 FEATURE_PROCESS_DOCDECL 規格中定義的 ul>li b 非驗證</b> 剖析器會設定<為 true li><b>驗證剖析器</b>,如 xml 1.0 規格中所定義,FEATURE_VALIDATION為 true (,且表示 FEATURE_PROCESS_DOCDECL 為 true <) li><>><<當FEATURE_PROCESS_DOCDECL為 false (這是預設值,而且如果需要不同的值,則必須在剖析啟動之前先變更) 剖析器的行為就像 XML 1.0 相容,在 XML> (檔中沒有 DOCDECL 存在</em> 的情況下,剖析器<仍可使用 defineEntityReplacementText () ) ) 定義。 此作業模式適用於<>受限環境</b> 中的作業,例如 J2ME。 </ul>

有兩個主要方法:next () 和 nextToken () 。 雖然 next () 提供高階剖析事件的存取權,但 nextToken () 允許存取較低層級的令牌。

呼叫 getEventType () 方法,即可判斷剖析器的目前事件狀態。 一開始,剖析器處於START_DOCUMENT狀態。

方法 next () 會將剖析器前進到下一個事件。 接下來傳回的 int 值會決定目前的剖析器狀態,而且與從下列 getEventType () 呼叫傳回的值相同。

下一個事件類型 () <dl<>dt>START_TAG<dd> 已讀取 XML 起始標記。 <已讀取 dt>TEXT<dd> Text 內容;可以使用 getText () 方法來擷取文字內容。 在驗證模式下一個 () 時, (不會報告可忽略的空格符,請改 <用 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") 會傳回 String (“1.0”) 或 null,如果 XMLDecl 未讀取或屬性不支援 <li><b>獨立</b>:>><<< getProperty ("http://xmlpull.org/v1/doc/properties.html#xmldecl-standalone") 傳回 Boolean:如果沒有獨立宣告,或不支援 property 則傳回 Boolean (true) if standalone=“yes” 和 Boolean (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 檔。

此頁面的部分是根據 所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

欄位

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

Managed 對等的狀態。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取和調用支援。

(繼承來源 IJavaPeerable)
LineNumber

傳回目前的行號,從 1 開始。

Name

針對START_TAG或END_TAG事件,當啟用命名空間時 (,會傳回目前專案的本機) 名稱。

Namespace

傳回目前專案的命名空間 URI。

PeerReference

JniObjectReference 回已包裝 Java 物件實例的 。

(繼承來源 IJavaPeerable)
PositionDescription

傳回描述目前剖析器狀態的簡短文字,包括位置、目前事件的描述,以及已知的數據源。

Prefix

傳回目前專案的前置詞。

Text

以 String 傳回目前事件的文字內容。

Types

此陣列可用來將事件類型整數常數,例如START_TAG或TT轉換成字串。

方法

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()

呼叫 next () ,如果事件START_TAG或END_TAG否則會擲回例外狀況,則傳回事件。

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 及其實作) 。

適用於