Compartir a través de


IXmlPullParser.NextText Método

Definición

Si el evento actual es START_TAG, si el siguiente elemento es TEXT, se devuelve el contenido del elemento o, si el evento siguiente es END_TAG, se devuelve una cadena vacía; de lo contrario, se produce una excepción.

[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

Devoluciones

Atributos

Excepciones

Comentarios

Si el evento actual es START_TAG, si el siguiente elemento es TEXT, se devuelve el contenido del elemento o, si el evento siguiente es END_TAG, se devuelve una cadena vacía; de lo contrario, se produce una excepción. Después de llamar a esta función correctamente, el analizador se colocará en END_TAG.

La motivación de esta función es permitir analizar de forma coherente elementos vacíos y elementos que no tienen contenido vacío, por ejemplo, para la entrada: <ol><li>< tag> foo <li>< tag> (que es equivalente a < tag/> ambas entradas se pueden analizar con el mismo código:

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

Esta función junto con nextTag facilitan el análisis de XML sin contenido mixto.

Básicamente, hace esto

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

<advertencia fuerte>:</strong> Antes del nivel de API 14, el analizador de extracción devuelto por android.util.Xml no siempre avanzaba al evento END_TAG cuando se llamó a este método. Solución alternativa mediante el avance manual después de las llamadas a nextText():

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

Documentación de Java para org.xmlpull.v1.XmlPullParser.nextText().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a