Compartilhar via


IXmlPullParser.NextText Método

Definição

Se o evento atual for START_TAG se o próximo elemento for TEXT, o conteúdo do elemento será retornado ou, se o próximo evento for END_TAG, a cadeia de caracteres vazia será retornada, caso contrário, a exceção será lançada.

[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

Retornos

Atributos

Exceções

Comentários

Se o evento atual for START_TAG se o próximo elemento for TEXT, o conteúdo do elemento será retornado ou, se o próximo evento for END_TAG, a cadeia de caracteres vazia será retornada, caso contrário, a exceção será lançada. Depois de chamar esta função com êxito, o analisador será posicionado em END_TAG.

A motivação para esta função é permitir analisar consistentemente tanto elementos vazios quanto elementos que tem conteúdo não vazio, por exemplo, para entrada: <ol><li>< Etiqueta> foo <li>< Etiqueta> (que é equivalente a < etiqueta/> ambas as entradas podem ser analisadas com o mesmo código:

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

Essa função, juntamente com o nextTag, facilita muito a análise de XML que não tem conteúdo misto.

Essencialmente, ele faz isso

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>Aviso:</strong> Antes do nível 14 da API, o analisador pull retornado por android.util.Xml nem sempre avançava para o evento END_TAG quando esse método era chamado. Solução alternativa usando o avanço manual após chamadas para nextText():

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

Documentação Java para org.xmlpull.v1.XmlPullParser.nextText().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a