Lingua

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

Valori restituiti

Contenuto di solo testo dell'elemento corrente o stringa vuota se non contiene contenuto. Il parser deve iniziare in un tag iniziale e, in caso di esito positivo, termina con il tag di fine corrispondente.

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: olli< 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();
             }

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

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a