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 及其實作) 。
根據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 ( "<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
的 org.xmlpull.v1.XmlPullParser
Java 檔。
此頁面的部分是根據 所建立和共用的工作進行修改,並根據 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 |
傳回已包裝實例的 值 |
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() |
如果這個實例沒有未完成的參考,則呼叫 |
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) |
設定所 |
SetJniManagedPeerState(JniManagedPeerStates) |
XML 提取剖析器是定義 XMLPULL V1 API 中提供之剖析功能的介面, (請造訪此網站以深入瞭解 API 及其實作) 。 (繼承來源 IJavaPeerable) |
SetPeerReference(JniObjectReference) |
設定所 |
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 及其實作) 。 |