語言

IXmlPullParser.NextText 方法

定義

如果目前事件是START_TAG,則下一個元素是 TEXT 則回傳元素內容;若下一個事件是 END_TAG,則回傳空字串,否則拋出例外。

[Android.Runtime.Register("nextText", "()Ljava/lang/String;", "GetNextTextHandler:Org.XmlPull.V1.IXmlPullParserInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public string? NextText();
[<Android.Runtime.Register("nextText", "()Ljava/lang/String;", "GetNextTextHandler:Org.XmlPull.V1.IXmlPullParserInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member NextText : unit -> string

傳回

屬性

例外狀況

備註

如果目前事件是START_TAG,則下一個元素是 TEXT 則回傳元素內容;若下一個事件是 END_TAG,則回傳空字串,否則拋出例外。 成功呼叫此函式後,解析器會被放置在 END_TAG。

此函式的動機是允許能夠一致地解析空元素與內容非空的元素,例如輸入時: olli<標籤>foo LI<標籤>(這等價於 <標籤/>兩個輸入都可以用相同的程式碼解析:

p.nextTag()
              p.requireEvent(p.START_TAG, "", "tag");
              String content = p.nextText();
              p.requireEvent(p.END_TAG, "", "tag");

這個函式加上 nextTag,讓解析沒有混合內容的 XML 變得非常容易。

基本上就是這樣做的

if(getEventType() != START_TAG) {
                throw new XmlPullParserException(
                  "parser must be on START_TAG to read next text", this, null);
             }
             int eventType = next();
             if(eventType == TEXT) {
                String result = getText();
                eventType = next();
                if(eventType != END_TAG) {
                  throw new XmlPullParserException(
                     "event TEXT it must be immediately followed by END_TAG", this, null);
                 }
                 return result;
             } else if(eventType == END_TAG) {
                return "";
             } else {
                throw new XmlPullParserException(
                  "parser must be on START_TAG or TEXT to read text", this, null);
             }

<strong>警告:</strong> 在 API 等級 14 之前,回傳的 android.util.Xml 拉取解析器在呼叫此方法時並不總是會進入 END_TAG 事件。 請透過呼叫 nextText(: ) 後手動推進來解決:

String text = xpp.nextText();
             if (xpp.getEventType() != XmlPullParser.END_TAG) {
                 xpp.next();
             }

的 org.xmlpull.v1.XmlPullParser.nextText()Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於