Condividi tramite


IXmlPullParser.NextText Metodo

Definizione

Se l'evento corrente è START_TAG, se l'elemento successivo è TEXT, viene restituito il contenuto dell'elemento o se l'evento successivo è END_TAG viene restituita una stringa vuota, in caso contrario viene generata un'eccezione.

[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

Restituisce

Attributi

Eccezioni

Commenti

Se l'evento corrente è START_TAG, se l'elemento successivo è TEXT, viene restituito il contenuto dell'elemento o se l'evento successivo è END_TAG viene restituita una stringa vuota, in caso contrario viene generata un'eccezione. Dopo aver chiamato questa funzione, il parser verrà posizionato in END_TAG.

La motivazione di questa funzione consiste nel consentire di analizzare in modo coerente sia elementi vuoti che elementi con contenuto non vuoto, ad esempio per input: <ol><li>< tag> foo <li>< tag> (equivalente a < tag/> entrambi gli input possono essere analizzati con lo stesso codice:

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

Questa funzione insieme a nextTag semplifica l'analisi del codice XML senza contenuto misto.

In sostanza, questa operazione viene

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);
             }

<>avviso sicuro:</strong> Prima del livello API 14, il parser pull restituito da android.util.Xml non ha sempre spostato all'evento END_TAG quando questo metodo è stato chiamato. Risolvere il problema usando l'avanzamento manuale dopo le chiamate a nextText():

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

Documentazione java per org.xmlpull.v1.XmlPullParser.nextText().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a